home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1993-12-14 | 18.4 KB | [TEXT/KAHL] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: EditRoutines.c
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Dec 14 13:04:16 1993, modified Tue Dec 14 13:04:16 1993, creator Think C, type ASCII, 17958 bytes "EditRoutines.c" , at 0x46a6 564 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [KAHL] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0e 45 64 69 74 52 6f | 75 74 69 6e 65 73 2e 63 |..EditRo|utines.c|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 46 26 00 | 00 02 34 a9 33 b0 a0 a9 |.....F&.|..4.3...|
|00000060| 33 b0 a0 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |3.......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 65 0d 00 00 |........|....e...|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 2a 2a 2a 2a 0d 20 | 2a 20 45 64 69 74 52 6f |******. |* EditRo|
|000000d0| 75 74 69 6e 65 73 2e 63 | 0d 20 2a 0d 20 2a 20 49 |utines.c|. *. * I|
|000000e0| 6d 70 6c 65 6d 65 6e 74 | 73 20 61 20 6c 69 6e 6b |mplement|s a link|
|000000f0| 65 64 2d 6c 69 73 74 20 | 2f 20 76 69 72 74 75 61 |ed-list |/ virtua|
|00000100| 6c 20 6d 65 6d 6f 72 79 | 20 73 63 68 65 6d 65 20 |l memory| scheme |
|00000110| 66 6f 72 20 68 65 78 20 | 65 64 69 74 69 6e 67 0d |for hex |editing.|
|00000120| 20 2a 0d 20 2a 20 48 65 | 78 45 64 69 74 2c 20 61 | *. * He|xEdit, a|
|00000130| 20 73 69 6d 70 6c 65 20 | 68 65 78 20 65 64 69 74 | simple |hex edit|
|00000140| 6f 72 0d 20 2a 20 63 6f | 70 79 72 69 67 68 74 20 |or. * co|pyright |
|00000150| 31 39 39 33 2c 20 4a 69 | 6d 20 42 75 6d 67 61 72 |1993, Ji|m Bumgar|
|00000160| 64 6e 65 72 0d 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |dner. **|********|
|00000170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0d 0d 23 69 |********|***/..#i|
|000001b0| 6e 63 6c 75 64 65 20 22 | 48 65 78 45 64 69 74 2e |nclude "|HexEdit.|
|000001c0| 68 22 0d 0d 45 64 69 74 | 43 68 75 6e 6b 09 2a 2a |h"..Edit|Chunk.**|
|000001d0| 67 53 63 72 61 70 43 68 | 75 6e 6b 3b 0d 73 68 6f |gScrapCh|unk;.sho|
|000001e0| 72 74 09 09 67 53 63 72 | 61 70 43 6f 75 6e 74 3b |rt..gScr|apCount;|
|000001f0| 0d 55 6e 64 6f 52 65 63 | 6f 72 64 09 67 55 6e 64 |.UndoRec|ord.gUnd|
|00000200| 6f 52 65 63 2c 20 67 52 | 65 64 6f 52 65 63 3b 0d |oRec, gR|edoRec;.|
|00000210| 0d 76 6f 69 64 20 4c 6f | 61 64 46 69 6c 65 28 45 |.void Lo|adFile(E|
|00000220| 64 69 74 57 69 6e 64 6f | 77 50 74 72 20 64 57 69 |ditWindo|wPtr dWi|
|00000230| 6e 29 3b 0d 76 6f 69 64 | 20 55 6e 6c 6f 61 64 46 |n);.void| UnloadF|
|00000240| 69 6c 65 28 45 64 69 74 | 57 69 6e 64 6f 77 50 74 |ile(Edit|WindowPt|
|00000250| 72 20 64 57 69 6e 29 3b | 0d 45 64 69 74 43 68 75 |r dWin);|.EditChu|
|00000260| 6e 6b 20 2a 2a 4e 65 77 | 43 68 75 6e 6b 28 6c 6f |nk **New|Chunk(lo|
|00000270| 6e 67 20 73 69 7a 65 2c | 20 6c 6f 6e 67 20 61 64 |ng size,| long ad|
|00000280| 64 72 2c 20 6c 6f 6e 67 | 20 66 69 6c 65 50 6f 73 |dr, long| filePos|
|00000290| 2c 20 73 68 6f 72 74 20 | 74 79 70 65 29 3b 0d 45 |, short |type);.E|
|000002a0| 64 69 74 43 68 75 6e 6b | 20 2a 2a 41 70 70 65 6e |ditChunk| **Appen|
|000002b0| 64 43 68 75 6e 6b 28 45 | 64 69 74 43 68 75 6e 6b |dChunk(E|ditChunk|
|000002c0| 20 2a 2a 6c 69 73 74 2c | 20 45 64 69 74 43 68 75 | **list,| EditChu|
|000002d0| 6e 6b 20 2a 2a 63 68 75 | 6e 6b 29 3b 0d 76 6f 69 |nk **chu|nk);.voi|
|000002e0| 64 20 4c 6f 61 64 43 68 | 75 6e 6b 28 45 64 69 74 |d LoadCh|unk(Edit|
|000002f0| 57 69 6e 64 6f 77 50 74 | 72 20 64 57 69 6e 2c 20 |WindowPt|r dWin, |
|00000300| 45 64 69 74 43 68 75 6e | 6b 20 2a 2a 63 63 29 3b |EditChun|k **cc);|
|00000310| 0d 76 6f 69 64 20 55 6e | 6c 6f 61 64 4c 65 61 73 |.void Un|loadLeas|
|00000320| 74 55 73 65 64 43 68 75 | 6e 6b 28 45 64 69 74 57 |tUsedChu|nk(EditW|
|00000330| 69 6e 64 6f 77 50 74 72 | 20 64 57 69 6e 29 3b 0d |indowPtr| dWin);.|
|00000340| 76 6f 69 64 20 55 6e 6c | 6f 61 64 43 68 75 6e 6b |void Unl|oadChunk|
|00000350| 28 45 64 69 74 57 69 6e | 64 6f 77 50 74 72 20 64 |(EditWin|dowPtr d|
|00000360| 57 69 6e 2c 20 45 64 69 | 74 43 68 75 6e 6b 09 2a |Win, Edi|tChunk.*|
|00000370| 2a 63 63 2c 20 42 6f 6f | 6c 65 61 6e 20 77 72 69 |*cc, Boo|lean wri|
|00000380| 74 65 46 6c 61 67 29 3b | 0d 0d 2f 2f 20 41 73 73 |teFlag);|..// Ass|
|00000390| 75 6d 65 73 20 77 69 6e | 64 6f 77 20 68 61 73 20 |umes win|dow has |
|000003a0| 6a 75 73 74 20 62 65 65 | 6e 20 6f 70 65 6e 65 64 |just bee|n opened|
|000003b0| 2c 20 66 69 6c 65 20 69 | 73 20 6f 70 65 6e 2c 20 |, file i|s open, |
|000003c0| 66 69 6c 65 53 69 7a 65 | 20 66 69 65 6c 64 20 69 |fileSize| field i|
|000003d0| 73 20 63 6f 72 72 65 63 | 74 0d 76 6f 69 64 20 4c |s correc|t.void L|
|000003e0| 6f 61 64 46 69 6c 65 28 | 45 64 69 74 57 69 6e 64 |oadFile(|EditWind|
|000003f0| 6f 77 50 74 72 20 64 57 | 69 6e 29 0d 7b 0d 09 45 |owPtr dW|in).{..E|
|00000400| 64 69 74 43 68 75 6e 6b | 09 2a 2a 6e 63 3b 0d 09 |ditChunk|.**nc;..|
|00000410| 6c 6f 6e 67 09 09 63 6f | 75 6e 74 2c 63 68 75 6e |long..co|unt,chun|
|00000420| 6b 53 69 7a 65 2c 70 6f | 73 3b 0d 09 63 6f 75 6e |kSize,po|s;..coun|
|00000430| 74 20 3d 20 64 57 69 6e | 2d 3e 66 69 6c 65 53 69 |t = dWin|->fileSi|
|00000440| 7a 65 3b 0d 09 70 6f 73 | 20 3d 20 30 4c 3b 0d 09 |ze;..pos| = 0L;..|
|00000450| 77 68 69 6c 65 20 28 63 | 6f 75 6e 74 29 20 7b 0d |while (c|ount) {.|
|00000460| 09 09 69 66 20 28 63 6f | 75 6e 74 20 3c 3d 20 28 |..if (co|unt <= (|
|00000470| 4d 61 78 46 69 6c 65 52 | 41 4d 20 2d 20 53 6c 75 |MaxFileR|AM - Slu|
|00000480| 73 68 52 41 4d 29 29 0d | 09 09 09 63 68 75 6e 6b |shRAM)).|...chunk|
|00000490| 53 69 7a 65 20 3d 20 63 | 6f 75 6e 74 3b 0d 09 09 |Size = c|ount;...|
|000004a0| 65 6c 73 65 0d 09 09 09 | 63 68 75 6e 6b 53 69 7a |else....|chunkSiz|
|000004b0| 65 20 3d 20 28 4d 61 78 | 46 69 6c 65 52 41 4d 20 |e = (Max|FileRAM |
|000004c0| 2d 20 53 6c 75 73 68 52 | 41 4d 29 3b 0d 09 09 63 |- SlushR|AM);...c|
|000004d0| 6f 75 6e 74 20 2d 3d 20 | 63 68 75 6e 6b 53 69 7a |ount -= |chunkSiz|
|000004e0| 65 3b 0d 09 09 6e 63 20 | 3d 20 4e 65 77 43 68 75 |e;...nc |= NewChu|
|000004f0| 6e 6b 28 63 68 75 6e 6b | 53 69 7a 65 2c 70 6f 73 |nk(chunk|Size,pos|
|00000500| 2c 70 6f 73 2c 20 43 54 | 5f 4f 72 69 67 69 6e 61 |,pos, CT|_Origina|
|00000510| 6c 29 3b 0d 09 09 64 57 | 69 6e 2d 3e 66 69 72 73 |l);...dW|in->firs|
|00000520| 74 43 68 75 6e 6b 20 3d | 20 41 70 70 65 6e 64 43 |tChunk =| AppendC|
|00000530| 68 75 6e 6b 28 64 57 69 | 6e 2d 3e 66 69 72 73 74 |hunk(dWi|n->first|
|00000540| 43 68 75 6e 6b 2c 20 6e | 63 29 3b 0d 09 09 70 6f |Chunk, n|c);...po|
|00000550| 73 20 2b 3d 20 63 68 75 | 6e 6b 53 69 7a 65 3b 0d |s += chu|nkSize;.|
|00000560| 09 7d 0d 09 64 57 69 6e | 2d 3e 63 75 72 43 68 75 |.}..dWin|->curChu|
|00000570| 6e 6b 20 3d 20 64 57 69 | 6e 2d 3e 66 69 72 73 74 |nk = dWi|n->first|
|00000580| 43 68 75 6e 6b 3b 0d 7d | 0d 0d 76 6f 69 64 20 44 |Chunk;.}|..void D|
|00000590| 69 73 70 6f 73 65 43 68 | 75 6e 6b 28 45 64 69 74 |isposeCh|unk(Edit|
|000005a0| 57 69 6e 64 6f 77 50 74 | 72 20 64 57 69 6e 2c 20 |WindowPt|r dWin, |
|000005b0| 45 64 69 74 43 68 75 6e | 6b 20 2a 2a 63 63 29 0d |EditChun|k **cc).|
|000005c0| 7b 0d 09 69 66 20 28 28 | 2a 63 63 29 2d 3e 6c 6f |{..if ((|*cc)->lo|
|000005d0| 61 64 65 64 29 20 7b 0d | 09 09 69 66 20 28 28 2a |aded) {.|..if ((*|
|000005e0| 63 63 29 2d 3e 6c 6f 61 | 64 65 64 29 0d 09 09 09 |cc)->loa|ded)....|
|000005f0| 55 6e 6c 6f 61 64 43 68 | 75 6e 6b 28 64 57 69 6e |UnloadCh|unk(dWin|
|00000600| 2c 63 63 2c 20 66 61 6c | 73 65 29 3b 0d 09 09 44 |,cc, fal|se);...D|
|00000610| 69 73 70 6f 73 48 61 6e | 64 6c 65 28 28 48 61 6e |isposHan|dle((Han|
|00000620| 64 6c 65 29 20 63 63 29 | 3b 0d 09 7d 0d 7d 0d 0d |dle) cc)|;..}.}..|
|00000630| 76 6f 69 64 20 55 6e 6c | 6f 61 64 46 69 6c 65 28 |void Unl|oadFile(|
|00000640| 45 64 69 74 57 69 6e 64 | 6f 77 50 74 72 20 64 57 |EditWind|owPtr dW|
|00000650| 69 6e 29 0d 7b 0d 09 45 | 64 69 74 43 68 75 6e 6b |in).{..E|ditChunk|
|00000660| 09 2a 2a 63 63 2c 2a 2a | 62 63 3b 0d 09 63 63 20 |.**cc,**|bc;..cc |
|00000670| 3d 20 64 57 69 6e 2d 3e | 66 69 72 73 74 43 68 75 |= dWin->|firstChu|
|00000680| 6e 6b 3b 0d 09 77 68 69 | 6c 65 20 28 63 63 29 20 |nk;..whi|le (cc) |
|00000690| 7b 0d 09 09 62 63 20 3d | 20 28 2a 63 63 29 2d 3e |{...bc =| (*cc)->|
|000006a0| 6e 65 78 74 3b 0d 09 09 | 44 69 73 70 6f 73 65 43 |next;...|DisposeC|
|000006b0| 68 75 6e 6b 28 64 57 69 | 6e 2c 20 63 63 29 3b 0d |hunk(dWi|n, cc);.|
|000006c0| 09 09 63 63 20 3d 20 62 | 63 3b 0d 09 7d 0d 09 64 |..cc = b|c;..}..d|
|000006d0| 57 69 6e 2d 3e 66 69 72 | 73 74 43 68 75 6e 6b 20 |Win->fir|stChunk |
|000006e0| 3d 20 64 57 69 6e 2d 3e | 63 75 72 43 68 75 6e 6b |= dWin->|curChunk|
|000006f0| 20 3d 20 4e 55 4c 4c 3b | 0d 7d 0d 0d 0d 45 64 69 | = NULL;|.}...Edi|
|00000700| 74 43 68 75 6e 6b 20 2a | 2a 4e 65 77 43 68 75 6e |tChunk *|*NewChun|
|00000710| 6b 28 6c 6f 6e 67 20 73 | 69 7a 65 2c 20 6c 6f 6e |k(long s|ize, lon|
|00000720| 67 20 61 64 64 72 2c 20 | 6c 6f 6e 67 20 66 69 6c |g addr, |long fil|
|00000730| 65 50 6f 73 2c 20 73 68 | 6f 72 74 20 74 79 70 65 |ePos, sh|ort type|
|00000740| 29 0d 7b 0d 09 45 64 69 | 74 43 68 75 6e 6b 20 2a |).{..Edi|tChunk *|
|00000750| 2a 6e 63 3b 0d 09 6e 63 | 20 3d 20 28 45 64 69 74 |*nc;..nc| = (Edit|
|00000760| 43 68 75 6e 6b 20 2a 2a | 29 20 4e 65 77 48 61 6e |Chunk **|) NewHan|
|00000770| 64 6c 65 43 6c 65 61 72 | 28 73 69 7a 65 6f 66 28 |dleClear|(sizeof(|
|00000780| 45 64 69 74 43 68 75 6e | 6b 29 29 3b 0d 09 69 66 |EditChun|k));..if|
|00000790| 20 28 6e 63 20 3d 3d 20 | 4e 55 4c 4c 29 20 7b 0d | (nc == |NULL) {.|
|000007a0| 09 09 45 72 72 6f 72 41 | 6c 65 72 74 28 45 53 5f |..ErrorA|lert(ES_|
|000007b0| 43 61 75 74 69 6f 6e 2c | 20 22 4f 75 74 20 6f 66 |Caution,| "Out of|
|000007c0| 20 4d 65 6d 6f 72 79 22 | 29 3b 0d 09 09 72 65 74 | Memory"|);...ret|
|000007d0| 75 72 6e 20 4e 55 4c 4c | 3b 0d 09 7d 0d 09 28 2a |urn NULL|;..}..(*|
|000007e0| 6e 63 29 2d 3e 74 79 70 | 65 20 3d 20 74 79 70 65 |nc)->typ|e = type|
|000007f0| 3b 0d 09 28 2a 6e 63 29 | 2d 3e 73 69 7a 65 20 3d |;..(*nc)|->size =|
|00000800| 20 73 69 7a 65 3b 0d 09 | 28 2a 6e 63 29 2d 3e 61 | size;..|(*nc)->a|
|00000810| 64 64 72 20 3d 20 61 64 | 64 72 3b 0d 09 28 2a 6e |ddr = ad|dr;..(*n|
|00000820| 63 29 2d 3e 66 69 6c 65 | 50 6f 73 20 3d 20 66 69 |c)->file|Pos = fi|
|00000830| 6c 65 50 6f 73 3b 0d 09 | 28 2a 6e 63 29 2d 3e 6c |lePos;..|(*nc)->l|
|00000840| 61 73 74 43 74 72 20 3d | 20 2d 31 3b 0d 09 69 66 |astCtr =| -1;..if|
|00000850| 20 28 74 79 70 65 20 3d | 3d 20 43 54 5f 55 6e 77 | (type =|= CT_Unw|
|00000860| 72 69 74 74 65 6e 29 20 | 7b 0d 09 09 28 2a 6e 63 |ritten) |{...(*nc|
|00000870| 29 2d 3e 6c 6f 61 64 65 | 64 20 3d 20 74 72 75 65 |)->loade|d = true|
|00000880| 3b 0d 09 09 28 2a 6e 63 | 29 2d 3e 61 6c 6c 6f 63 |;...(*nc|)->alloc|
|00000890| 53 69 7a 65 20 3d 20 73 | 69 7a 65 3b 0d 09 09 28 |Size = s|ize;...(|
|000008a0| 2a 6e 63 29 2d 3e 64 61 | 74 61 20 3d 20 4e 65 77 |*nc)->da|ta = New|
|000008b0| 48 61 6e 64 6c 65 43 6c | 65 61 72 28 28 2a 6e 63 |HandleCl|ear((*nc|
|000008c0| 29 2d 3e 61 6c 6c 6f 63 | 53 69 7a 65 29 3b 0d 09 |)->alloc|Size);..|
|000008d0| 09 69 66 20 28 28 2a 6e | 63 29 2d 3e 64 61 74 61 |.if ((*n|c)->data|
|000008e0| 20 3d 3d 20 4e 55 4c 4c | 29 20 7b 0d 09 09 09 45 | == NULL|) {....E|
|000008f0| 72 72 6f 72 41 6c 65 72 | 74 28 45 53 5f 43 61 75 |rrorAler|t(ES_Cau|
|00000900| 74 69 6f 6e 2c 20 22 4f | 75 74 20 6f 66 20 4d 65 |tion, "O|ut of Me|
|00000910| 6d 6f 72 79 22 29 3b 0d | 09 09 09 44 69 73 70 6f |mory");.|...Dispo|
|00000920| 73 48 61 6e 64 6c 65 28 | 28 48 61 6e 64 6c 65 29 |sHandle(|(Handle)|
|00000930| 20 6e 63 29 3b 0d 09 09 | 09 72 65 74 75 72 6e 20 | nc);...|.return |
|00000940| 4e 55 4c 4c 3b 0d 09 09 | 7d 0d 09 7d 0d 09 65 6c |NULL;...|}..}..el|
|00000950| 73 65 20 7b 0d 09 09 28 | 2a 6e 63 29 2d 3e 6c 6f |se {...(|*nc)->lo|
|00000960| 61 64 65 64 20 3d 20 66 | 61 6c 73 65 3b 0d 09 09 |aded = f|alse;...|
|00000970| 28 2a 6e 63 29 2d 3e 64 | 61 74 61 20 3d 20 4e 55 |(*nc)->d|ata = NU|
|00000980| 4c 4c 3b 0d 09 09 28 2a | 6e 63 29 2d 3e 61 6c 6c |LL;...(*|nc)->all|
|00000990| 6f 63 53 69 7a 65 20 3d | 20 30 4c 3b 0d 09 7d 0d |ocSize =| 0L;..}.|
|000009a0| 09 72 65 74 75 72 6e 20 | 6e 63 3b 0d 7d 0d 0d 45 |.return |nc;.}..E|
|000009b0| 64 69 74 43 68 75 6e 6b | 20 2a 2a 41 70 70 65 6e |ditChunk| **Appen|
|000009c0| 64 43 68 75 6e 6b 28 45 | 64 69 74 43 68 75 6e 6b |dChunk(E|ditChunk|
|000009d0| 20 2a 2a 6c 69 73 74 2c | 20 45 64 69 74 43 68 75 | **list,| EditChu|
|000009e0| 6e 6b 20 2a 2a 63 68 75 | 6e 6b 29 0d 7b 0d 09 69 |nk **chu|nk).{..i|
|000009f0| 66 20 28 6c 69 73 74 29 | 20 7b 0d 09 09 72 65 67 |f (list)| {...reg|
|00000a00| 69 73 74 65 72 20 45 64 | 69 74 43 68 75 6e 6b 09 |ister Ed|itChunk.|
|00000a10| 2a 2a 63 75 72 43 68 75 | 6e 6b 3b 0d 09 09 63 75 |**curChu|nk;...cu|
|00000a20| 72 43 68 75 6e 6b 20 3d | 20 6c 69 73 74 3b 0d 09 |rChunk =| list;..|
|00000a30| 09 77 68 69 6c 65 20 28 | 28 2a 63 75 72 43 68 75 |.while (|(*curChu|
|00000a40| 6e 6b 29 2d 3e 6e 65 78 | 74 29 0d 09 09 09 63 75 |nk)->nex|t)....cu|
|00000a50| 72 43 68 75 6e 6b 20 3d | 20 28 2a 63 75 72 43 68 |rChunk =| (*curCh|
|00000a60| 75 6e 6b 29 2d 3e 6e 65 | 78 74 3b 0d 09 09 28 2a |unk)->ne|xt;...(*|
|00000a70| 63 75 72 43 68 75 6e 6b | 29 2d 3e 6e 65 78 74 20 |curChunk|)->next |
|00000a80| 3d 20 63 68 75 6e 6b 3b | 0d 09 09 28 2a 63 68 75 |= chunk;|...(*chu|
|00000a90| 6e 6b 29 2d 3e 70 72 65 | 76 20 3d 20 63 75 72 43 |nk)->pre|v = curC|
|00000aa0| 68 75 6e 6b 3b 0d 09 09 | 28 2a 63 68 75 6e 6b 29 |hunk;...|(*chunk)|
|00000ab0| 2d 3e 6e 65 78 74 20 3d | 20 4e 55 4c 4c 3b 0d 09 |->next =| NULL;..|
|00000ac0| 7d 0d 09 65 6c 73 65 20 | 7b 0d 09 09 6c 69 73 74 |}..else |{...list|
|00000ad0| 20 3d 20 63 68 75 6e 6b | 3b 0d 09 09 28 2a 63 68 | = chunk|;...(*ch|
|00000ae0| 75 6e 6b 29 2d 3e 6e 65 | 78 74 20 3d 20 28 2a 63 |unk)->ne|xt = (*c|
|00000af0| 68 75 6e 6b 29 2d 3e 70 | 72 65 76 20 3d 20 4e 55 |hunk)->p|rev = NU|
|00000b00| 4c 4c 3b 0d 09 7d 0d 09 | 72 65 74 75 72 6e 20 6c |LL;..}..|return l|
|00000b10| 69 73 74 3b 0d 7d 0d 0d | 76 6f 69 64 20 53 65 74 |ist;.}..|void Set|
|00000b20| 43 75 72 72 65 6e 74 43 | 68 75 6e 6b 28 45 64 69 |CurrentC|hunk(Edi|
|00000b30| 74 57 69 6e 64 6f 77 50 | 74 72 20 64 57 69 6e 2c |tWindowP|tr dWin,|
|00000b40| 20 6c 6f 6e 67 20 61 64 | 64 72 29 0d 7b 0d 09 72 | long ad|dr).{..r|
|00000b50| 65 67 69 73 74 65 72 20 | 45 64 69 74 43 68 75 6e |egister |EditChun|
|00000b60| 6b 20 2a 2a 63 63 3b 0d | 09 63 63 20 3d 20 47 65 |k **cc;.|.cc = Ge|
|00000b70| 74 43 68 75 6e 6b 42 79 | 41 64 64 72 28 64 57 69 |tChunkBy|Addr(dWi|
|00000b80| 6e 2c 61 64 64 72 29 3b | 0d 09 64 57 69 6e 2d 3e |n,addr);|..dWin->|
|00000b90| 63 75 72 43 68 75 6e 6b | 20 3d 20 63 63 3b 0d 7d |curChunk| = cc;.}|
|00000ba0| 0d 0d 45 64 69 74 43 68 | 75 6e 6b 20 2a 2a 47 65 |..EditCh|unk **Ge|
|00000bb0| 74 43 68 75 6e 6b 42 79 | 41 64 64 72 28 45 64 69 |tChunkBy|Addr(Edi|
|00000bc0| 74 57 69 6e 64 6f 77 50 | 74 72 20 64 57 69 6e 2c |tWindowP|tr dWin,|
|00000bd0| 20 6c 6f 6e 67 20 61 64 | 64 72 29 0d 7b 0d 09 72 | long ad|dr).{..r|
|00000be0| 65 67 69 73 74 65 72 20 | 45 64 69 74 43 68 75 6e |egister |EditChun|
|00000bf0| 6b 20 2a 2a 63 63 3b 0d | 09 69 66 20 28 64 57 69 |k **cc;.|.if (dWi|
|00000c00| 6e 2d 3e 63 75 72 43 68 | 75 6e 6b 20 26 26 20 61 |n->curCh|unk && a|
|00000c10| 64 64 72 20 3e 3d 20 28 | 2a 64 57 69 6e 2d 3e 63 |ddr >= (|*dWin->c|
|00000c20| 75 72 43 68 75 6e 6b 29 | 2d 3e 61 64 64 72 29 0d |urChunk)|->addr).|
|00000c30| 09 09 63 63 20 3d 20 64 | 57 69 6e 2d 3e 63 75 72 |..cc = d|Win->cur|
|00000c40| 43 68 75 6e 6b 3b 0d 09 | 65 6c 73 65 09 2f 2f 20 |Chunk;..|else.// |
|00000c50| 4f 74 68 65 72 77 69 73 | 65 2c 20 73 74 61 72 74 |Otherwis|e, start|
|00000c60| 20 66 72 6f 6d 20 62 65 | 67 69 6e 6e 69 6e 67 20 | from be|ginning |
|00000c70| 6f 66 20 63 68 61 69 6e | 0d 09 09 63 63 20 3d 20 |of chain|...cc = |
|00000c80| 64 57 69 6e 2d 3e 66 69 | 72 73 74 43 68 75 6e 6b |dWin->fi|rstChunk|
|00000c90| 3b 0d 09 77 68 69 6c 65 | 20 28 63 63 29 20 7b 0d |;..while| (cc) {.|
|00000ca0| 09 09 69 66 20 28 61 64 | 64 72 20 3c 20 28 2a 63 |..if (ad|dr < (*c|
|00000cb0| 63 29 2d 3e 61 64 64 72 | 2b 28 2a 63 63 29 2d 3e |c)->addr|+(*cc)->|
|00000cc0| 73 69 7a 65 29 0d 09 09 | 09 62 72 65 61 6b 3b 0d |size)...|.break;.|
|00000cd0| 09 09 65 6c 73 65 20 7b | 0d 09 09 09 69 66 20 28 |..else {|....if (|
|00000ce0| 28 2a 63 63 29 2d 3e 6e | 65 78 74 29 0d 09 09 09 |(*cc)->n|ext)....|
|00000cf0| 09 63 63 20 3d 20 28 2a | 63 63 29 2d 3e 6e 65 78 |.cc = (*|cc)->nex|
|00000d00| 74 3b 0d 09 09 09 65 6c | 73 65 0d 09 09 09 09 72 |t;....el|se.....r|
|00000d10| 65 74 75 72 6e 20 63 63 | 3b 0d 09 09 7d 0d 09 7d |eturn cc|;...}..}|
|00000d20| 0d 09 72 65 74 75 72 6e | 20 63 63 3b 0d 7d 0d 0d |..return| cc;.}..|
|00000d30| 73 68 6f 72 74 20 47 65 | 74 42 79 74 65 28 45 64 |short Ge|tByte(Ed|
|00000d40| 69 74 57 69 6e 64 6f 77 | 50 74 72 20 64 57 69 6e |itWindow|Ptr dWin|
|00000d50| 2c 20 6c 6f 6e 67 20 61 | 64 64 72 29 0d 7b 0d 09 |, long a|ddr).{..|
|00000d60| 72 65 67 69 73 74 65 72 | 20 45 64 69 74 43 68 75 |register| EditChu|
|00000d70| 6e 6b 20 2a 2a 63 63 3b | 0d 09 69 66 20 28 28 63 |nk **cc;|..if ((c|
|00000d80| 63 20 3d 20 47 65 74 43 | 68 75 6e 6b 42 79 41 64 |c = GetC|hunkByAd|
|00000d90| 64 72 28 64 57 69 6e 2c | 61 64 64 72 29 29 20 21 |dr(dWin,|addr)) !|
|00000da0| 3d 20 4e 55 4c 4c 29 20 | 7b 0d 09 09 2f 2f 20 43 |= NULL) |{...// C|
|00000db0| 6f 72 72 65 63 74 20 43 | 68 75 6e 6b 0d 09 09 69 |orrect C|hunk...i|
|00000dc0| 66 20 28 21 28 2a 63 63 | 29 2d 3e 6c 6f 61 64 65 |f (!(*cc|)->loade|
|00000dd0| 64 29 0d 09 09 09 4c 6f | 61 64 43 68 75 6e 6b 28 |d)....Lo|adChunk(|
|00000de0| 64 57 69 6e 2c 63 63 29 | 3b 0d 09 09 69 66 20 28 |dWin,cc)|;...if (|
|00000df0| 28 2a 63 63 29 2d 3e 6c | 61 73 74 43 74 72 20 21 |(*cc)->l|astCtr !|
|00000e00| 3d 20 64 57 69 6e 2d 3e | 75 73 65 43 74 72 29 20 |= dWin->|useCtr) |
|00000e10| 7b 0d 09 09 09 2f 2f 20 | 55 70 64 61 74 65 20 74 |{....// |Update t|
|00000e20| 68 65 20 43 6f 75 6e 74 | 65 72 0d 09 09 09 2b 2b |he Count|er....++|
|00000e30| 64 57 69 6e 2d 3e 75 73 | 65 43 74 72 3b 0d 09 09 |dWin->us|eCtr;...|
|00000e40| 09 28 2a 63 63 29 2d 3e | 6c 61 73 74 43 74 72 20 |.(*cc)->|lastCtr |
|00000e50| 3d 20 64 57 69 6e 2d 3e | 75 73 65 43 74 72 3b 0d |= dWin->|useCtr;.|
|00000e60| 09 09 7d 0d 09 09 72 65 | 74 75 72 6e 20 28 75 6e |..}...re|turn (un|
|00000e70| 73 69 67 6e 65 64 20 63 | 68 61 72 29 20 28 2a 28 |signed c|har) (*(|
|00000e80| 2a 63 63 29 2d 3e 64 61 | 74 61 29 5b 61 64 64 72 |*cc)->da|ta)[addr|
|00000e90| 20 2d 20 28 2a 63 63 29 | 2d 3e 61 64 64 72 5d 3b | - (*cc)|->addr];|
|00000ea0| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 20 2d 31 3b 0d |..}..ret|urn -1;.|
|00000eb0| 7d 0d 0d 76 6f 69 64 20 | 4c 6f 61 64 43 68 75 6e |}..void |LoadChun|
|00000ec0| 6b 28 45 64 69 74 57 69 | 6e 64 6f 77 50 74 72 20 |k(EditWi|ndowPtr |
|00000ed0| 64 57 69 6e 2c 20 45 64 | 69 74 43 68 75 6e 6b 20 |dWin, Ed|itChunk |
|00000ee0| 2a 2a 63 63 29 0d 7b 0d | 09 6c 6f 6e 67 09 63 6f |**cc).{.|.long.co|
|00000ef0| 75 6e 74 3b 0d 09 4f 53 | 45 72 72 09 6f 65 3b 0d |unt;..OS|Err.oe;.|
|00000f00| 09 73 68 6f 72 74 09 72 | 65 66 4e 75 6d 3b 0d 09 |.short.r|efNum;..|
|00000f10| 69 66 20 28 28 2a 63 63 | 29 2d 3e 6c 6f 61 64 65 |if ((*cc|)->loade|
|00000f20| 64 29 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 2f 2f |d)...ret|urn;..//|
|00000f30| 20 43 68 65 63 6b 20 69 | 66 20 77 65 20 63 61 6e | Check i|f we can|
|00000f40| 20 66 69 74 20 77 69 74 | 68 69 6e 20 4d 61 78 46 | fit wit|hin MaxF|
|00000f50| 69 6c 65 52 61 6d 2c 20 | 69 66 20 6e 6f 74 2c 20 |ileRam, |if not, |
|00000f60| 64 65 61 6c 6c 6f 63 61 | 74 65 20 6f 6c 64 20 63 |dealloca|te old c|
|00000f70| 68 75 6e 6b 73 0d 09 2f | 2f 20 75 6e 74 69 6c 20 |hunks../|/ until |
|00000f80| 77 65 27 72 65 20 6f 6b | 0d 09 77 68 69 6c 65 20 |we're ok|..while |
|00000f90| 28 64 57 69 6e 2d 3e 74 | 6f 74 4c 6f 61 64 65 64 |(dWin->t|otLoaded|
|00000fa0| 2b 28 2a 63 63 29 2d 3e | 73 69 7a 65 20 3e 20 4d |+(*cc)->|size > M|
|00000fb0| 61 78 46 69 6c 65 52 41 | 4d 29 20 7b 0d 09 09 55 |axFileRA|M) {...U|
|00000fc0| 6e 6c 6f 61 64 4c 65 61 | 73 74 55 73 65 64 43 68 |nloadLea|stUsedCh|
|00000fd0| 75 6e 6b 28 64 57 69 6e | 29 3b 0d 09 7d 0d 09 28 |unk(dWin|);..}..(|
|00000fe0| 2a 63 63 29 2d 3e 64 61 | 74 61 20 3d 20 4e 65 77 |*cc)->da|ta = New|
|00000ff0| 48 61 6e 64 6c 65 43 6c | 65 61 72 28 28 2a 63 63 |HandleCl|ear((*cc|
|00001000| 29 2d 3e 73 69 7a 65 29 | 3b 0d 09 69 66 20 28 28 |)->size)|;..if ((|
|00001010| 2a 63 63 29 2d 3e 64 61 | 74 61 20 3d 3d 20 4e 55 |*cc)->da|ta == NU|
|00001020| 4c 4c 29 20 7b 0d 09 09 | 45 72 72 6f 72 41 6c 65 |LL) {...|ErrorAle|
|00001030| 72 74 28 45 53 5f 43 61 | 75 74 69 6f 6e 2c 22 4e |rt(ES_Ca|ution,"N|
|00001040| 6f 74 20 65 6e 6f 75 67 | 68 20 6d 65 6d 6f 72 79 |ot enoug|h memory|
|00001050| 22 29 3b 0d 09 09 28 2a | 63 63 29 2d 3e 61 6c 6c |");...(*|cc)->all|
|00001060| 6f 63 53 69 7a 65 20 3d | 20 30 4c 3b 0d 09 09 28 |ocSize =| 0L;...(|
|00001070| 2a 63 63 29 2d 3e 6c 6f | 61 64 65 64 20 3d 20 66 |*cc)->lo|aded = f|
|00001080| 61 6c 73 65 3b 0d 09 7d | 0d 09 65 6c 73 65 20 7b |alse;..}|..else {|
|00001090| 0d 09 09 69 66 20 28 28 | 2a 63 63 29 2d 3e 74 79 |...if ((|*cc)->ty|
|000010a0| 70 65 20 3d 3d 20 43 54 | 5f 57 6f 72 6b 29 0d 09 |pe == CT|_Work)..|
|000010b0| 09 09 72 65 66 4e 75 6d | 20 3d 20 64 57 69 6e 2d |..refNum| = dWin-|
|000010c0| 3e 77 6f 72 6b 52 65 66 | 4e 75 6d 3b 0d 09 09 65 |>workRef|Num;...e|
|000010d0| 6c 73 65 0d 09 09 09 72 | 65 66 4e 75 6d 20 3d 20 |lse....r|efNum = |
|000010e0| 64 57 69 6e 2d 3e 72 65 | 66 4e 75 6d 3b 0d 09 09 |dWin->re|fNum;...|
|000010f0| 28 2a 63 63 29 2d 3e 61 | 6c 6c 6f 63 53 69 7a 65 |(*cc)->a|llocSize|
|00001100| 20 3d 20 28 2a 63 63 29 | 2d 3e 73 69 7a 65 3b 0d | = (*cc)|->size;.|
|00001110| 09 09 28 2a 63 63 29 2d | 3e 6c 6f 61 64 65 64 20 |..(*cc)-|>loaded |
|00001120| 3d 20 74 72 75 65 3b 0d | 09 09 69 66 20 28 28 6f |= true;.|..if ((o|
|00001130| 65 20 3d 20 53 65 74 46 | 50 6f 73 28 72 65 66 4e |e = SetF|Pos(refN|
|00001140| 75 6d 2c 20 66 73 46 72 | 6f 6d 53 74 61 72 74 2c |um, fsFr|omStart,|
|00001150| 20 28 2a 63 63 29 2d 3e | 66 69 6c 65 50 6f 73 29 | (*cc)->|filePos)|
|00001160| 29 20 21 3d 20 6e 6f 45 | 72 72 29 0d 09 09 09 4f |) != noE|rr)....O|
|00001170| 53 45 72 72 6f 72 41 6c | 65 72 74 28 45 53 5f 43 |SErrorAl|ert(ES_C|
|00001180| 61 75 74 69 6f 6e 2c 22 | 53 65 65 6b 20 45 72 72 |aution,"|Seek Err|
|00001190| 6f 72 22 2c 6f 65 29 3b | 0d 09 09 63 6f 75 6e 74 |or",oe);|...count|
|000011a0| 20 3d 20 28 2a 63 63 29 | 2d 3e 73 69 7a 65 3b 0d | = (*cc)|->size;.|
|000011b0| 09 09 64 57 69 6e 2d 3e | 74 6f 74 4c 6f 61 64 65 |..dWin->|totLoade|
|000011c0| 64 20 2b 3d 20 28 2a 63 | 63 29 2d 3e 73 69 7a 65 |d += (*c|c)->size|
|000011d0| 3b 0d 09 09 69 66 20 28 | 28 6f 65 20 3d 20 46 53 |;...if (|(oe = FS|
|000011e0| 52 65 61 64 28 72 65 66 | 4e 75 6d 2c 20 26 63 6f |Read(ref|Num, &co|
|000011f0| 75 6e 74 2c 20 2a 28 2a | 63 63 29 2d 3e 64 61 74 |unt, *(*|cc)->dat|
|00001200| 61 29 29 20 21 3d 20 6e | 6f 45 72 72 29 0d 09 09 |a)) != n|oErr)...|
|00001210| 09 4f 53 45 72 72 6f 72 | 41 6c 65 72 74 28 45 53 |.OSError|Alert(ES|
|00001220| 5f 43 61 75 74 69 6f 6e | 2c 22 52 65 61 64 20 45 |_Caution|,"Read E|
|00001230| 72 72 6f 72 22 2c 6f 65 | 29 3b 0d 09 7d 0d 7d 0d |rror",oe|);..}.}.|
|00001240| 0d 76 6f 69 64 20 55 6e | 6c 6f 61 64 4c 65 61 73 |.void Un|loadLeas|
|00001250| 74 55 73 65 64 43 68 75 | 6e 6b 28 45 64 69 74 57 |tUsedChu|nk(EditW|
|00001260| 69 6e 64 6f 77 50 74 72 | 20 64 57 69 6e 29 0d 7b |indowPtr| dWin).{|
|00001270| 0d 09 45 64 69 74 43 68 | 75 6e 6b 09 2a 2a 63 63 |..EditCh|unk.**cc|
|00001280| 2c 2a 2a 6f 63 3d 4e 55 | 4c 4c 3b 0d 09 6f 63 20 |,**oc=NU|LL;..oc |
|00001290| 3d 20 63 63 20 3d 20 64 | 57 69 6e 2d 3e 66 69 72 |= cc = d|Win->fir|
|000012a0| 73 74 43 68 75 6e 6b 3b | 0d 09 77 68 69 6c 65 20 |stChunk;|..while |
|000012b0| 28 63 63 29 20 7b 0d 09 | 09 69 66 20 28 28 2a 63 |(cc) {..|.if ((*c|
|000012c0| 63 29 2d 3e 6c 6f 61 64 | 65 64 20 26 26 20 0d 09 |c)->load|ed && ..|
|000012d0| 09 09 28 21 28 2a 6f 63 | 29 2d 3e 6c 6f 61 64 65 |..(!(*oc|)->loade|
|000012e0| 64 20 7c 7c 20 28 2a 63 | 63 29 2d 3e 6c 61 73 74 |d || (*c|c)->last|
|000012f0| 43 74 72 20 3c 20 28 2a | 6f 63 29 2d 3e 6c 61 73 |Ctr < (*|oc)->las|
|00001300| 74 43 74 72 29 29 0d 09 | 09 09 6f 63 20 3d 20 63 |tCtr))..|..oc = c|
|00001310| 63 3b 0d 09 09 63 63 20 | 3d 20 28 2a 63 63 29 2d |c;...cc |= (*cc)-|
|00001320| 3e 6e 65 78 74 3b 0d 09 | 7d 0d 09 69 66 20 28 6f |>next;..|}..if (o|
|00001330| 63 29 0d 09 09 55 6e 6c | 6f 61 64 43 68 75 6e 6b |c)...Unl|oadChunk|
|00001340| 28 64 57 69 6e 2c 20 6f | 63 2c 20 74 72 75 65 29 |(dWin, o|c, true)|
|00001350| 3b 0d 7d 0d 0d 76 6f 69 | 64 20 55 6e 6c 6f 61 64 |;.}..voi|d Unload|
|00001360| 43 68 75 6e 6b 28 45 64 | 69 74 57 69 6e 64 6f 77 |Chunk(Ed|itWindow|
|00001370| 50 74 72 20 64 57 69 6e | 2c 20 45 64 69 74 43 68 |Ptr dWin|, EditCh|
|00001380| 75 6e 6b 09 2a 2a 63 63 | 2c 20 42 6f 6f 6c 65 61 |unk.**cc|, Boolea|
|00001390| 6e 20 77 72 69 74 65 46 | 6c 61 67 29 0d 7b 0d 09 |n writeF|lag).{..|
|000013a0| 6c 6f 6e 67 09 63 6f 75 | 6e 74 3b 0d 09 4f 53 45 |long.cou|nt;..OSE|
|000013b0| 72 72 09 6f 65 3b 0d 0d | 09 69 66 20 28 63 63 20 |rr.oe;..|.if (cc |
|000013c0| 26 26 20 28 2a 63 63 29 | 2d 3e 6c 6f 61 64 65 64 |&& (*cc)|->loaded|
|000013d0| 20 26 26 20 28 2a 63 63 | 29 2d 3e 64 61 74 61 29 | && (*cc|)->data)|
|000013e0| 20 7b 0d 09 09 69 66 20 | 28 77 72 69 74 65 46 6c | {...if |(writeFl|
|000013f0| 61 67 20 26 26 20 28 2a | 63 63 29 2d 3e 74 79 70 |ag && (*|cc)->typ|
|00001400| 65 20 3d 3d 20 43 54 5f | 55 6e 77 72 69 74 74 65 |e == CT_|Unwritte|
|00001410| 6e 29 20 7b 0d 09 09 09 | 2f 2f 20 52 65 63 6f 72 |n) {....|// Recor|
|00001420| 64 20 4e 65 77 20 43 68 | 75 6e 6b 73 20 69 6e 20 |d New Ch|unks in |
|00001430| 57 6f 72 6b 20 46 69 6c | 65 0d 09 09 09 6f 65 20 |Work Fil|e....oe |
|00001440| 3d 20 53 65 74 46 50 6f | 73 28 64 57 69 6e 2d 3e |= SetFPo|s(dWin->|
|00001450| 77 6f 72 6b 52 65 66 4e | 75 6d 2c 20 66 73 46 72 |workRefN|um, fsFr|
|00001460| 6f 6d 53 74 61 72 74 2c | 20 64 57 69 6e 2d 3e 77 |omStart,| dWin->w|
|00001470| 6f 72 6b 42 79 74 65 73 | 57 72 69 74 74 65 6e 29 |orkBytes|Written)|
|00001480| 3b 0d 09 09 09 69 66 20 | 28 6f 65 29 20 7b 0d 09 |;....if |(oe) {..|
|00001490| 09 09 09 4f 53 45 72 72 | 6f 72 41 6c 65 72 74 28 |...OSErr|orAlert(|
|000014a0| 45 53 5f 43 61 75 74 69 | 6f 6e 2c 20 22 53 65 74 |ES_Cauti|on, "Set|
|000014b0| 46 50 6f 73 22 2c 20 6f | 65 29 3b 0d 09 09 09 7d |FPos", o|e);....}|
|000014c0| 0d 09 09 09 63 6f 75 6e | 74 20 3d 20 28 2a 63 63 |....coun|t = (*cc|
|000014d0| 29 2d 3e 73 69 7a 65 3b | 0d 09 09 09 6f 65 20 3d |)->size;|....oe =|
|000014e0| 20 46 53 57 72 69 74 65 | 28 64 57 69 6e 2d 3e 77 | FSWrite|(dWin->w|
|000014f0| 6f 72 6b 52 65 66 4e 75 | 6d 2c 20 26 63 6f 75 6e |orkRefNu|m, &coun|
|00001500| 74 2c 20 2a 28 2a 63 63 | 29 2d 3e 64 61 74 61 29 |t, *(*cc|)->data)|
|00001510| 3b 0d 09 09 09 69 66 20 | 28 6f 65 29 20 7b 0d 09 |;....if |(oe) {..|
|00001520| 09 09 09 4f 53 45 72 72 | 6f 72 41 6c 65 72 74 28 |...OSErr|orAlert(|
|00001530| 45 53 5f 43 61 75 74 69 | 6f 6e 2c 20 22 46 53 57 |ES_Cauti|on, "FSW|
|00001540| 72 69 74 65 22 2c 20 6f | 65 29 3b 0d 09 09 09 7d |rite", o|e);....}|
|00001550| 0d 09 09 09 28 2a 63 63 | 29 2d 3e 74 79 70 65 20 |....(*cc|)->type |
|00001560| 3d 20 43 54 5f 57 6f 72 | 6b 3b 0d 09 09 09 28 2a |= CT_Wor|k;....(*|
|00001570| 63 63 29 2d 3e 66 69 6c | 65 50 6f 73 20 3d 20 64 |cc)->fil|ePos = d|
|00001580| 57 69 6e 2d 3e 77 6f 72 | 6b 42 79 74 65 73 57 72 |Win->wor|kBytesWr|
|00001590| 69 74 74 65 6e 3b 0d 09 | 09 09 64 57 69 6e 2d 3e |itten;..|..dWin->|
|000015a0| 77 6f 72 6b 42 79 74 65 | 73 57 72 69 74 74 65 6e |workByte|sWritten|
|000015b0| 20 2b 3d 20 63 6f 75 6e | 74 3b 0d 09 09 7d 0d 0d | += coun|t;...}..|
|000015c0| 09 09 64 57 69 6e 2d 3e | 74 6f 74 4c 6f 61 64 65 |..dWin->|totLoade|
|000015d0| 64 20 2d 3d 20 28 2a 63 | 63 29 2d 3e 73 69 7a 65 |d -= (*c|c)->size|
|000015e0| 3b 0d 09 09 28 2a 63 63 | 29 2d 3e 6c 6f 61 64 65 |;...(*cc|)->loade|
|000015f0| 64 20 3d 20 66 61 6c 73 | 65 3b 0d 09 09 44 69 73 |d = fals|e;...Dis|
|00001600| 70 6f 73 48 61 6e 64 6c | 65 28 28 2a 63 63 29 2d |posHandl|e((*cc)-|
|00001610| 3e 64 61 74 61 29 3b 0d | 09 09 28 2a 63 63 29 2d |>data);.|..(*cc)-|
|00001620| 3e 64 61 74 61 20 3d 20 | 4e 55 4c 4c 3b 0d 09 09 |>data = |NULL;...|
|00001630| 28 2a 63 63 29 2d 3e 61 | 6c 6c 6f 63 53 69 7a 65 |(*cc)->a|llocSize|
|00001640| 20 3d 20 30 4c 3b 0d 09 | 7d 0d 7d 0d 0d 76 6f 69 | = 0L;..|}.}..voi|
|00001650| 64 20 52 65 77 72 69 74 | 65 41 64 64 72 65 73 73 |d Rewrit|eAddress|
|00001660| 43 68 61 69 6e 28 45 64 | 69 74 43 68 75 6e 6b 20 |Chain(Ed|itChunk |
|00001670| 2a 2a 66 63 29 0d 7b 0d | 09 45 64 69 74 43 68 75 |**fc).{.|.EditChu|
|00001680| 6e 6b 09 2a 2a 6e 63 3b | 0d 09 2f 2f 20 52 65 77 |nk.**nc;|..// Rew|
|00001690| 72 69 74 65 20 41 64 64 | 72 65 73 73 65 73 20 6f |rite Add|resses o|
|000016a0| 66 20 63 68 75 6e 6b 73 | 20 73 74 61 72 74 69 6e |f chunks| startin|
|000016b0| 67 20 66 72 6f 6d 20 66 | 63 0d 09 6e 63 20 3d 20 |g from f|c..nc = |
|000016c0| 28 2a 66 63 29 2d 3e 6e | 65 78 74 3b 0d 09 77 68 |(*fc)->n|ext;..wh|
|000016d0| 69 6c 65 20 28 6e 63 29 | 20 7b 0d 09 09 28 2a 6e |ile (nc)| {...(*n|
|000016e0| 63 29 2d 3e 61 64 64 72 | 20 3d 20 28 2a 28 2a 6e |c)->addr| = (*(*n|
|000016f0| 63 29 2d 3e 70 72 65 76 | 29 2d 3e 61 64 64 72 20 |c)->prev|)->addr |
|00001700| 2b 20 28 2a 28 2a 6e 63 | 29 2d 3e 70 72 65 76 29 |+ (*(*nc|)->prev)|
|00001710| 2d 3e 73 69 7a 65 3b 0d | 09 09 6e 63 20 3d 20 28 |->size;.|..nc = (|
|00001720| 2a 6e 63 29 2d 3e 6e 65 | 78 74 3b 0d 09 7d 0d 7d |*nc)->ne|xt;..}.}|
|00001730| 0d 0d 76 6f 69 64 20 44 | 65 6c 65 74 65 53 65 6c |..void D|eleteSel|
|00001740| 65 63 74 69 6f 6e 28 45 | 64 69 74 57 69 6e 64 6f |ection(E|ditWindo|
|00001750| 77 50 74 72 20 64 57 69 | 6e 29 0d 7b 0d 09 45 64 |wPtr dWi|n).{..Ed|
|00001760| 69 74 43 68 75 6e 6b 20 | 2a 2a 66 63 2c 2a 2a 65 |itChunk |**fc,**e|
|00001770| 63 2c 2a 2a 6e 63 2c 2a | 2a 74 63 3b 0d 0d 09 69 |c,**nc,*|*tc;...i|
|00001780| 66 20 28 64 57 69 6e 2d | 3e 65 6e 64 53 65 6c 20 |f (dWin-|>endSel |
|00001790| 3d 3d 20 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 |== dWin-|>startSe|
|000017a0| 6c 29 0d 09 09 72 65 74 | 75 72 6e 3b 0d 0d 09 2f |l)...ret|urn;.../|
|000017b0| 2f 20 49 64 65 6e 74 69 | 66 79 20 53 74 61 72 74 |/ Identi|fy Start|
|000017c0| 69 6e 67 20 43 68 75 6e | 6b 0d 09 66 63 20 3d 20 |ing Chun|k..fc = |
|000017d0| 47 65 74 43 68 75 6e 6b | 42 79 41 64 64 72 28 64 |GetChunk|ByAddr(d|
|000017e0| 57 69 6e 2c 20 64 57 69 | 6e 2d 3e 73 74 61 72 74 |Win, dWi|n->start|
|000017f0| 53 65 6c 29 3b 0d 09 64 | 57 69 6e 2d 3e 63 75 72 |Sel);..d|Win->cur|
|00001800| 43 68 75 6e 6b 20 3d 20 | 66 63 3b 09 09 2f 2f 20 |Chunk = |fc;..// |
|00001810| 4f 70 74 69 6d 69 7a 65 | 20 63 68 75 6e 6b 20 73 |Optimize| chunk s|
|00001820| 65 61 72 63 68 65 73 0d | 0d 09 2f 2f 20 49 64 65 |earches.|..// Ide|
|00001830| 6e 74 69 66 79 20 45 6e | 64 69 6e 67 20 43 68 75 |ntify En|ding Chu|
|00001840| 6e 6b 0d 09 65 63 20 3d | 20 47 65 74 43 68 75 6e |nk..ec =| GetChun|
|00001850| 6b 42 79 41 64 64 72 28 | 64 57 69 6e 2c 20 64 57 |kByAddr(|dWin, dW|
|00001860| 69 6e 2d 3e 65 6e 64 53 | 65 6c 29 3b 0d 0d 09 2f |in->endS|el);.../|
|00001870| 2f 20 49 66 20 43 68 75 | 6e 6b 73 20 61 72 65 20 |/ If Chu|nks are |
|00001880| 74 68 65 20 73 61 6d 65 | 0d 09 69 66 20 28 66 63 |the same|..if (fc|
|00001890| 20 3d 3d 20 65 63 29 20 | 7b 0d 09 09 2f 2f 20 49 | == ec) |{...// I|
|000018a0| 66 20 63 68 75 6e 6b 20 | 69 73 20 75 6e 77 72 69 |f chunk |is unwri|
|000018b0| 74 74 65 6e 0d 09 09 69 | 66 20 28 28 2a 66 63 29 |tten...i|f ((*fc)|
|000018c0| 2d 3e 74 79 70 65 20 3d | 3d 20 43 54 5f 55 6e 77 |->type =|= CT_Unw|
|000018d0| 72 69 74 74 65 6e 29 20 | 7b 0d 09 09 09 2f 2f 20 |ritten) |{....// |
|000018e0| 44 65 6c 65 74 65 20 43 | 68 61 72 73 20 66 72 6f |Delete C|hars fro|
|000018f0| 6d 20 42 75 66 66 65 72 | 0d 09 09 09 2f 2f 20 31 |m Buffer|....// 1|
|00001900| 32 2f 31 34 20 4a 41 42 | 21 21 21 20 20 66 69 78 |2/14 JAB|!!! fix|
|00001910| 65 64 20 65 64 69 74 69 | 6e 67 20 62 75 67 0d 09 |ed editi|ng bug..|
|00001920| 09 09 42 6c 6f 63 6b 4d | 6f 76 65 28 2a 28 2a 66 |..BlockM|ove(*(*f|
|00001930| 63 29 2d 3e 64 61 74 61 | 20 2b 20 28 64 57 69 6e |c)->data| + (dWin|
|00001940| 2d 3e 65 6e 64 53 65 6c | 20 2d 20 28 2a 66 63 29 |->endSel| - (*fc)|
|00001950| 2d 3e 61 64 64 72 29 2c | 0d 09 09 09 09 09 20 20 |->addr),|...... |
|00001960| 2a 28 2a 66 63 29 2d 3e | 64 61 74 61 20 2b 20 28 |*(*fc)->|data + (|
|00001970| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 20 2d |dWin->st|artSel -|
|00001980| 20 28 2a 66 63 29 2d 3e | 61 64 64 72 29 2c 0d 09 | (*fc)->|addr),..|
|00001990| 09 09 09 09 20 20 28 2a | 66 63 29 2d 3e 73 69 7a |.... (*|fc)->siz|
|000019a0| 65 20 2d 20 28 64 57 69 | 6e 2d 3e 65 6e 64 53 65 |e - (dWi|n->endSe|
|000019b0| 6c 20 2d 20 28 2a 66 63 | 29 2d 3e 61 64 64 72 29 |l - (*fc|)->addr)|
|000019c0| 29 3b 0d 2f 2a 09 09 09 | 42 6c 6f 63 6b 4d 6f 76 |);./*...|BlockMov|
|000019d0| 65 28 2a 28 2a 66 63 29 | 2d 3e 64 61 74 61 20 2b |e(*(*fc)|->data +|
|000019e0| 20 28 64 57 69 6e 2d 3e | 65 6e 64 53 65 6c 20 2d | (dWin->|endSel -|
|000019f0| 20 28 2a 66 63 29 2d 3e | 61 64 64 72 29 2c 2a 2f | (*fc)->|addr),*/|
|00001a00| 0d 2f 2a 09 09 09 09 09 | 20 20 2a 28 2a 66 63 29 |./*.....| *(*fc)|
|00001a10| 2d 3e 64 61 74 61 20 2b | 20 28 64 57 69 6e 2d 3e |->data +| (dWin->|
|00001a20| 73 74 61 72 74 53 65 6c | 20 2d 20 28 2a 66 63 29 |startSel| - (*fc)|
|00001a30| 2d 3e 61 64 64 72 29 2c | 2a 2f 0d 2f 2a 09 09 09 |->addr),|*/./*...|
|00001a40| 09 09 20 20 64 57 69 6e | 2d 3e 65 6e 64 53 65 6c |.. dWin|->endSel|
|00001a50| 20 2d 20 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 | - dWin-|>startSe|
|00001a60| 6c 29 3b 2a 2f 0d 09 09 | 09 28 2a 66 63 29 2d 3e |l);*/...|.(*fc)->|
|00001a70| 73 69 7a 65 20 2d 3d 20 | 64 57 69 6e 2d 3e 65 6e |size -= |dWin->en|
|00001a80| 64 53 65 6c 20 2d 20 64 | 57 69 6e 2d 3e 73 74 61 |dSel - d|Win->sta|
|00001a90| 72 74 53 65 6c 3b 0d 09 | 09 7d 0d 09 09 65 6c 73 |rtSel;..|.}...els|
|00001aa0| 65 20 7b 0d 09 09 09 55 | 6e 6c 6f 61 64 43 68 75 |e {....U|nloadChu|
|00001ab0| 6e 6b 28 64 57 69 6e 2c | 20 66 63 2c 20 74 72 75 |nk(dWin,| fc, tru|
|00001ac0| 65 29 3b 0d 09 09 09 2f | 2f 20 53 70 6c 69 74 20 |e);..../|/ Split |
|00001ad0| 69 6e 74 6f 20 74 77 6f | 20 63 68 75 6e 6b 73 0d |into two| chunks.|
|00001ae0| 09 09 09 6e 63 20 3d 20 | 4e 65 77 43 68 75 6e 6b |...nc = |NewChunk|
|00001af0| 28 28 2a 66 63 29 2d 3e | 73 69 7a 65 20 2d 20 28 |((*fc)->|size - (|
|00001b00| 64 57 69 6e 2d 3e 65 6e | 64 53 65 6c 20 2d 20 28 |dWin->en|dSel - (|
|00001b10| 2a 66 63 29 2d 3e 61 64 | 64 72 29 2c 20 0d 09 09 |*fc)->ad|dr), ...|
|00001b20| 09 09 09 09 09 30 2c 20 | 0d 09 09 09 09 09 09 09 |.....0, |........|
|00001b30| 28 2a 66 63 29 2d 3e 66 | 69 6c 65 50 6f 73 20 2b |(*fc)->f|ilePos +|
|00001b40| 20 28 64 57 69 6e 2d 3e | 65 6e 64 53 65 6c 20 2d | (dWin->|endSel -|
|00001b50| 20 28 2a 66 63 29 2d 3e | 61 64 64 72 29 2c 20 0d | (*fc)->|addr), .|
|00001b60| 09 09 09 09 09 09 09 28 | 2a 66 63 29 2d 3e 74 79 |.......(|*fc)->ty|
|00001b70| 70 65 29 3b 0d 09 09 09 | 28 2a 6e 63 29 2d 3e 70 |pe);....|(*nc)->p|
|00001b80| 72 65 76 20 3d 20 66 63 | 3b 0d 09 09 09 28 2a 6e |rev = fc|;....(*n|
|00001b90| 63 29 2d 3e 6e 65 78 74 | 20 3d 20 28 2a 66 63 29 |c)->next| = (*fc)|
|00001ba0| 2d 3e 6e 65 78 74 3b 0d | 09 09 09 69 66 20 28 28 |->next;.|...if ((|
|00001bb0| 2a 6e 63 29 2d 3e 6e 65 | 78 74 29 0d 09 09 09 09 |*nc)->ne|xt).....|
|00001bc0| 28 2a 28 2a 6e 63 29 2d | 3e 6e 65 78 74 29 2d 3e |(*(*nc)-|>next)->|
|00001bd0| 70 72 65 76 20 3d 20 6e | 63 3b 0d 09 09 09 28 2a |prev = n|c;....(*|
|00001be0| 66 63 29 2d 3e 6e 65 78 | 74 20 3d 20 6e 63 3b 0d |fc)->nex|t = nc;.|
|00001bf0| 09 09 09 28 2a 66 63 29 | 2d 3e 73 69 7a 65 20 3d |...(*fc)|->size =|
|00001c00| 20 64 57 69 6e 2d 3e 73 | 74 61 72 74 53 65 6c 20 | dWin->s|tartSel |
|00001c10| 2d 20 28 2a 66 63 29 2d | 3e 61 64 64 72 3b 0d 09 |- (*fc)-|>addr;..|
|00001c20| 09 7d 0d 09 7d 0d 09 65 | 6c 73 65 20 7b 0d 09 09 |.}..}..e|lse {...|
|00001c30| 2f 2f 20 54 72 75 6e 63 | 61 74 65 20 65 6e 64 20 |// Trunc|ate end |
|00001c40| 6f 66 20 66 69 72 73 74 | 20 43 68 75 6e 6b 0d 09 |of first| Chunk..|
|00001c50| 09 28 2a 66 63 29 2d 3e | 73 69 7a 65 20 3d 20 64 |.(*fc)->|size = d|
|00001c60| 57 69 6e 2d 3e 73 74 61 | 72 74 53 65 6c 20 2d 20 |Win->sta|rtSel - |
|00001c70| 28 2a 66 63 29 2d 3e 61 | 64 64 72 3b 0d 09 09 2f |(*fc)->a|ddr;.../|
|00001c80| 2f 20 55 6e 6c 69 6e 6b | 20 26 20 44 69 73 70 6f |/ Unlink| & Dispo|
|00001c90| 73 65 20 4d 69 64 64 6c | 65 20 43 68 75 6e 6b 73 |se Middl|e Chunks|
|00001ca0| 2c 20 49 66 20 41 6e 79 | 0d 09 09 6e 63 20 3d 20 |, If Any|...nc = |
|00001cb0| 28 2a 66 63 29 2d 3e 6e | 65 78 74 3b 0d 09 09 77 |(*fc)->n|ext;...w|
|00001cc0| 68 69 6c 65 20 28 6e 63 | 20 21 3d 20 65 63 29 20 |hile (nc| != ec) |
|00001cd0| 7b 0d 09 09 09 74 63 20 | 3d 20 28 2a 6e 63 29 2d |{....tc |= (*nc)-|
|00001ce0| 3e 6e 65 78 74 3b 0d 09 | 09 09 44 69 73 70 6f 73 |>next;..|..Dispos|
|00001cf0| 65 43 68 75 6e 6b 28 64 | 57 69 6e 2c 20 6e 63 29 |eChunk(d|Win, nc)|
|00001d00| 3b 0d 09 09 09 6e 63 20 | 3d 20 74 63 3b 0d 09 09 |;....nc |= tc;...|
|00001d10| 7d 0d 09 09 28 2a 65 63 | 29 2d 3e 70 72 65 76 20 |}...(*ec|)->prev |
|00001d20| 3d 20 66 63 3b 0d 09 09 | 28 2a 66 63 29 2d 3e 6e |= fc;...|(*fc)->n|
|00001d30| 65 78 74 20 3d 20 65 63 | 3b 0d 09 09 2f 2f 20 54 |ext = ec|;...// T|
|00001d40| 72 75 6e 63 61 74 65 20 | 62 65 67 20 6f 66 20 65 |runcate |beg of e|
|00001d50| 6e 64 20 63 68 75 6e 6b | 0d 09 09 69 66 20 28 28 |nd chunk|...if ((|
|00001d60| 2a 65 63 29 2d 3e 74 79 | 70 65 20 3d 3d 20 43 54 |*ec)->ty|pe == CT|
|00001d70| 5f 55 6e 77 72 69 74 74 | 65 6e 29 20 7b 0d 09 09 |_Unwritt|en) {...|
|00001d80| 09 6c 6f 6e 67 09 6f 66 | 66 73 65 74 3b 0d 09 09 |.long.of|fset;...|
|00001d90| 09 6f 66 66 73 65 74 20 | 3d 20 64 57 69 6e 2d 3e |.offset |= dWin->|
|00001da0| 65 6e 64 53 65 6c 20 2d | 20 28 2a 65 63 29 2d 3e |endSel -| (*ec)->|
|00001db0| 61 64 64 72 3b 0d 09 09 | 09 42 6c 6f 63 6b 4d 6f |addr;...|.BlockMo|
|00001dc0| 76 65 28 2a 28 2a 65 63 | 29 2d 3e 64 61 74 61 2c |ve(*(*ec|)->data,|
|00001dd0| 20 2a 28 2a 65 63 29 2d | 3e 64 61 74 61 2b 6f 66 | *(*ec)-|>data+of|
|00001de0| 66 73 65 74 2c 20 28 2a | 65 63 29 2d 3e 73 69 7a |fset, (*|ec)->siz|
|00001df0| 65 20 2d 20 6f 66 66 73 | 65 74 29 3b 0d 09 09 09 |e - offs|et);....|
|00001e00| 28 2a 65 63 29 2d 3e 73 | 69 7a 65 20 2d 3d 20 6f |(*ec)->s|ize -= o|
|00001e10| 66 66 73 65 74 3b 0d 09 | 09 7d 0d 09 09 65 6c 73 |ffset;..|.}...els|
|00001e20| 65 20 7b 0d 09 09 09 6c | 6f 6e 67 09 6f 66 66 73 |e {....l|ong.offs|
|00001e30| 65 74 3b 0d 09 09 09 6f | 66 66 73 65 74 20 3d 20 |et;....o|ffset = |
|00001e40| 64 57 69 6e 2d 3e 65 6e | 64 53 65 6c 20 2d 20 28 |dWin->en|dSel - (|
|00001e50| 2a 65 63 29 2d 3e 61 64 | 64 72 3b 0d 09 09 09 55 |*ec)->ad|dr;....U|
|00001e60| 6e 6c 6f 61 64 43 68 75 | 6e 6b 28 64 57 69 6e 2c |nloadChu|nk(dWin,|
|00001e70| 20 65 63 2c 20 74 72 75 | 65 29 3b 0d 09 09 09 28 | ec, tru|e);....(|
|00001e80| 2a 65 63 29 2d 3e 66 69 | 6c 65 50 6f 73 20 2b 3d |*ec)->fi|lePos +=|
|00001e90| 20 6f 66 66 73 65 74 3b | 0d 09 09 09 28 2a 65 63 | offset;|....(*ec|
|00001ea0| 29 2d 3e 73 69 7a 65 20 | 2d 3d 20 6f 66 66 73 65 |)->size |-= offse|
|00001eb0| 74 3b 0d 09 09 7d 0d 09 | 7d 0d 0d 09 64 57 69 6e |t;...}..|}...dWin|
|00001ec0| 2d 3e 66 69 6c 65 53 69 | 7a 65 20 2d 3d 20 28 64 |->fileSi|ze -= (d|
|00001ed0| 57 69 6e 2d 3e 65 6e 64 | 53 65 6c 20 2d 20 64 57 |Win->end|Sel - dW|
|00001ee0| 69 6e 2d 3e 73 74 61 72 | 74 53 65 6c 29 3b 0d 0d |in->star|tSel);..|
|00001ef0| 09 52 65 77 72 69 74 65 | 41 64 64 72 65 73 73 43 |.Rewrite|AddressC|
|00001f00| 68 61 69 6e 28 66 63 29 | 3b 0d 0d 09 2f 2f 20 4d |hain(fc)|;...// M|
|00001f10| 6f 64 69 66 79 20 43 75 | 72 72 65 6e 74 20 53 65 |odify Cu|rrent Se|
|00001f20| 6c 65 63 74 69 6f 6e 20 | 73 75 63 68 20 74 68 61 |lection |such tha|
|00001f30| 74 20 20 65 6e 64 53 65 | 6c 20 3d 20 66 69 72 73 |t endSe|l = firs|
|00001f40| 74 53 65 6c 0d 09 64 57 | 69 6e 2d 3e 65 6e 64 53 |tSel..dW|in->endS|
|00001f50| 65 6c 20 3d 20 64 57 69 | 6e 2d 3e 73 74 61 72 74 |el = dWi|n->start|
|00001f60| 53 65 6c 3b 0d 09 64 57 | 69 6e 2d 3e 64 69 72 74 |Sel;..dW|in->dirt|
|00001f70| 79 46 6c 61 67 20 3d 20 | 74 72 75 65 3b 0d 7d 0d |yFlag = |true;.}.|
|00001f80| 0d 2f 2f 20 41 73 73 75 | 6d 65 73 20 73 65 6c 65 |.// Assu|mes sele|
|00001f90| 63 74 69 6f 6e 20 70 6f | 69 6e 74 20 69 73 20 61 |ction po|int is a|
|00001fa0| 6c 72 65 61 64 79 20 30 | 20 63 68 61 72 73 20 77 |lready 0| chars w|
|00001fb0| 69 64 65 2e 2e 2e 0d 76 | 6f 69 64 20 49 6e 73 65 |ide....v|oid Inse|
|00001fc0| 72 74 43 68 61 72 61 63 | 74 65 72 28 45 64 69 74 |rtCharac|ter(Edit|
|00001fd0| 57 69 6e 64 6f 77 50 74 | 72 20 64 57 69 6e 2c 20 |WindowPt|r dWin, |
|00001fe0| 73 68 6f 72 74 20 63 68 | 61 72 43 6f 64 65 29 0d |short ch|arCode).|
|00001ff0| 7b 0d 09 45 64 69 74 43 | 68 75 6e 6b 20 2a 2a 66 |{..EditC|hunk **f|
|00002000| 63 2c 2a 2a 65 63 2c 2a | 2a 6e 63 2c 2a 2a 74 63 |c,**ec,*|*nc,**tc|
|00002010| 3b 0d 0d 09 2f 2f 20 21 | 21 20 52 65 6d 65 6d 62 |;...// !|! Rememb|
|00002020| 65 72 20 43 75 72 72 65 | 6e 74 20 53 74 61 74 65 |er Curre|nt State|
|00002030| 20 66 6f 72 20 55 6e 64 | 6f 0d 0d 0d 09 2f 2f 20 | for Und|o....// |
|00002040| 49 6e 73 65 72 74 20 43 | 68 61 72 61 63 74 65 72 |Insert C|haracter|
|00002050| 20 49 6e 74 6f 20 4c 69 | 73 74 0d 09 2f 2f 09 49 | Into Li|st..//.I|
|00002060| 64 65 6e 74 69 66 79 20 | 63 75 72 72 65 6e 74 20 |dentify |current |
|00002070| 63 68 75 6e 6b 20 2d 20 | 6f 70 74 69 6d 69 7a 65 |chunk - |optimize|
|00002080| 20 73 6f 20 74 68 61 74 | 20 69 66 20 63 68 61 72 | so that| if char|
|00002090| 20 69 73 20 62 65 74 77 | 65 65 6e 0d 09 2f 2f 09 | is betw|een..//.|
|000020a0| 09 63 68 75 6e 6b 73 2c | 20 70 69 63 6b 20 74 68 |.chunks,| pick th|
|000020b0| 65 20 75 6e 77 72 69 74 | 74 65 6e 20 6f 6e 65 20 |e unwrit|ten one |
|000020c0| 6f 66 20 74 68 65 20 74 | 77 6f 2e 2e 2e 0d 0d 09 |of the t|wo......|
|000020d0| 2f 2f 20 49 64 65 6e 74 | 69 66 79 20 53 74 61 72 |// Ident|ify Star|
|000020e0| 74 69 6e 67 20 43 68 75 | 6e 6b 0d 09 66 63 20 3d |ting Chu|nk..fc =|
|000020f0| 20 47 65 74 43 68 75 6e | 6b 42 79 41 64 64 72 28 | GetChun|kByAddr(|
|00002100| 64 57 69 6e 2c 20 64 57 | 69 6e 2d 3e 73 74 61 72 |dWin, dW|in->star|
|00002110| 74 53 65 6c 29 3b 0d 0d | 09 2f 2f 09 49 64 65 6e |tSel);..|.//.Iden|
|00002120| 74 69 66 79 20 63 75 72 | 72 65 6e 74 20 63 68 75 |tify cur|rent chu|
|00002130| 6e 6b 20 2d 20 6f 70 74 | 69 6d 69 7a 65 20 73 6f |nk - opt|imize so|
|00002140| 20 74 68 61 74 20 69 66 | 20 63 68 61 72 20 69 73 | that if| char is|
|00002150| 20 62 65 74 77 65 65 6e | 0d 09 2f 2f 09 63 68 75 | between|..//.chu|
|00002160| 6e 6b 73 2c 20 70 69 63 | 6b 20 74 68 65 20 75 6e |nks, pic|k the un|
|00002170| 77 72 69 74 74 65 6e 20 | 6f 6e 65 20 6f 66 20 74 |written |one of t|
|00002180| 68 65 20 74 77 6f 2e 2e | 2e 20 2d 20 74 68 69 73 |he two..|. - this|
|00002190| 20 77 61 79 2c 20 69 66 | 20 49 20 6b 65 65 70 20 | way, if| I keep |
|000021a0| 74 79 70 69 6e 67 0d 09 | 2f 2f 20 20 63 68 61 72 |typing..|// char|
|000021b0| 61 63 74 65 72 73 2c 20 | 49 20 77 6f 6e 27 74 20 |acters, |I won't |
|000021c0| 67 65 6e 65 72 61 74 65 | 20 61 20 62 75 6e 63 68 |generate| a bunch|
|000021d0| 20 6f 66 20 31 20 62 79 | 74 65 20 63 68 75 6e 6b | of 1 by|te chunk|
|000021e0| 73 2e 0d 09 69 66 20 28 | 64 57 69 6e 2d 3e 73 74 |s...if (|dWin->st|
|000021f0| 61 72 74 53 65 6c 20 2d | 20 28 2a 66 63 29 2d 3e |artSel -| (*fc)->|
|00002200| 61 64 64 72 20 3d 3d 20 | 30 20 26 26 0d 09 09 28 |addr == |0 &&...(|
|00002210| 2a 66 63 29 2d 3e 70 72 | 65 76 20 26 26 20 28 2a |*fc)->pr|ev && (*|
|00002220| 66 63 29 2d 3e 74 79 70 | 65 20 21 3d 20 43 54 5f |fc)->typ|e != CT_|
|00002230| 55 6e 77 72 69 74 74 65 | 6e 20 26 26 0d 09 09 28 |Unwritte|n &&...(|
|00002240| 2a 28 2a 66 63 29 2d 3e | 70 72 65 76 29 2d 3e 74 |*(*fc)->|prev)->t|
|00002250| 79 70 65 20 3d 3d 20 43 | 54 5f 55 6e 77 72 69 74 |ype == C|T_Unwrit|
|00002260| 74 65 6e 29 20 7b 0d 09 | 09 66 63 20 3d 20 28 2a |ten) {..|.fc = (*|
|00002270| 66 63 29 2d 3e 70 72 65 | 76 3b 0d 09 7d 0d 09 64 |fc)->pre|v;..}..d|
|00002280| 57 69 6e 2d 3e 63 75 72 | 43 68 75 6e 6b 20 3d 20 |Win->cur|Chunk = |
|00002290| 66 63 3b 09 09 2f 2f 20 | 4f 70 74 69 6d 69 7a 65 |fc;..// |Optimize|
|000022a0| 20 63 68 75 6e 6b 20 73 | 65 61 72 63 68 65 73 0d | chunk s|earches.|
|000022b0| 0d 09 2f 2f 09 49 66 20 | 63 75 72 72 65 6e 74 20 |..//.If |current |
|000022c0| 63 68 75 6e 6b 20 69 73 | 20 6e 6f 74 20 75 6e 77 |chunk is| not unw|
|000022d0| 72 69 74 74 65 6e 0d 09 | 69 66 20 28 28 2a 66 63 |ritten..|if ((*fc|
|000022e0| 29 2d 3e 74 79 70 65 20 | 21 3d 20 43 54 5f 55 6e |)->type |!= CT_Un|
|000022f0| 77 72 69 74 74 65 6e 29 | 20 7b 0d 09 09 2f 2f 20 |written)| {...// |
|00002300| 55 6e 6c 6f 61 64 20 69 | 74 0d 09 09 55 6e 6c 6f |Unload i|t...Unlo|
|00002310| 61 64 43 68 75 6e 6b 28 | 64 57 69 6e 2c 20 66 63 |adChunk(|dWin, fc|
|00002320| 2c 20 74 72 75 65 29 3b | 0d 0d 09 09 69 66 20 28 |, true);|....if (|
|00002330| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 20 3e |dWin->st|artSel >|
|00002340| 20 28 2a 66 63 29 2d 3e | 61 64 64 72 29 20 7b 0d | (*fc)->|addr) {.|
|00002350| 0d 09 09 09 2f 2f 20 53 | 70 6c 69 74 20 69 6e 74 |....// S|plit int|
|00002360| 6f 20 74 77 6f 20 63 68 | 75 6e 6b 73 0d 09 09 09 |o two ch|unks....|
|00002370| 69 66 20 28 64 57 69 6e | 2d 3e 73 74 61 72 74 53 |if (dWin|->startS|
|00002380| 65 6c 20 3c 20 28 2a 66 | 63 29 2d 3e 61 64 64 72 |el < (*f|c)->addr|
|00002390| 20 2b 20 28 2a 66 63 29 | 2d 3e 73 69 7a 65 29 20 | + (*fc)|->size) |
|000023a0| 7b 0d 09 09 09 09 65 63 | 20 3d 20 4e 65 77 43 68 |{.....ec| = NewCh|
|000023b0| 75 6e 6b 28 28 2a 66 63 | 29 2d 3e 73 69 7a 65 20 |unk((*fc|)->size |
|000023c0| 2d 20 28 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 |- (dWin-|>startSe|
|000023d0| 6c 20 2d 20 28 2a 66 63 | 29 2d 3e 61 64 64 72 29 |l - (*fc|)->addr)|
|000023e0| 2c 20 0d 09 09 09 09 09 | 09 09 09 30 2c 20 0d 09 |, ......|...0, ..|
|000023f0| 09 09 09 09 09 09 09 28 | 2a 66 63 29 2d 3e 66 69 |.......(|*fc)->fi|
|00002400| 6c 65 50 6f 73 20 2b 20 | 28 64 57 69 6e 2d 3e 73 |lePos + |(dWin->s|
|00002410| 74 61 72 74 53 65 6c 20 | 2d 20 28 2a 66 63 29 2d |tartSel |- (*fc)-|
|00002420| 3e 61 64 64 72 29 2c 20 | 0d 09 09 09 09 09 09 09 |>addr), |........|
|00002430| 09 28 2a 66 63 29 2d 3e | 74 79 70 65 29 3b 0d 09 |.(*fc)->|type);..|
|00002440| 09 09 09 28 2a 65 63 29 | 2d 3e 70 72 65 76 20 3d |...(*ec)|->prev =|
|00002450| 20 66 63 3b 0d 09 09 09 | 09 28 2a 65 63 29 2d 3e | fc;....|.(*ec)->|
|00002460| 6e 65 78 74 20 3d 20 28 | 2a 66 63 29 2d 3e 6e 65 |next = (|*fc)->ne|
|00002470| 78 74 3b 0d 09 09 09 09 | 69 66 20 28 28 2a 65 63 |xt;.....|if ((*ec|
|00002480| 29 2d 3e 6e 65 78 74 29 | 0d 09 09 09 09 09 28 2a |)->next)|......(*|
|00002490| 28 2a 65 63 29 2d 3e 6e | 65 78 74 29 2d 3e 70 72 |(*ec)->n|ext)->pr|
|000024a0| 65 76 20 3d 20 65 63 3b | 0d 09 09 09 09 28 2a 66 |ev = ec;|.....(*f|
|000024b0| 63 29 2d 3e 6e 65 78 74 | 20 3d 20 65 63 3b 0d 09 |c)->next| = ec;..|
|000024c0| 09 09 7d 0d 09 09 09 65 | 6c 73 65 0d 09 09 09 09 |..}....e|lse.....|
|000024d0| 65 63 20 3d 20 28 2a 66 | 63 29 2d 3e 6e 65 78 74 |ec = (*f|c)->next|
|000024e0| 3b 0d 0d 09 09 09 28 2a | 66 63 29 2d 3e 73 69 7a |;.....(*|fc)->siz|
|000024f0| 65 20 3d 20 64 57 69 6e | 2d 3e 73 74 61 72 74 53 |e = dWin|->startS|
|00002500| 65 6c 20 2d 20 28 2a 66 | 63 29 2d 3e 61 64 64 72 |el - (*f|c)->addr|
|00002510| 3b 0d 09 09 7d 0d 09 09 | 65 6c 73 65 20 7b 0d 09 |;...}...|else {..|
|00002520| 09 09 65 63 20 3d 20 66 | 63 3b 0d 09 09 09 66 63 |..ec = f|c;....fc|
|00002530| 20 3d 20 28 2a 66 63 29 | 2d 3e 70 72 65 76 3b 0d | = (*fc)|->prev;.|
|00002540| 09 09 7d 0d 0d 09 09 2f | 2f 20 41 64 64 20 4e 65 |..}..../|/ Add Ne|
|00002550| 77 20 75 6e 77 72 69 74 | 74 65 6e 20 63 68 75 6e |w unwrit|ten chun|
|00002560| 6b 20 69 6e 20 6d 69 64 | 64 6c 65 20 77 69 74 68 |k in mid|dle with|
|00002570| 20 30 20 73 69 7a 65 0d | 09 09 6e 63 20 3d 20 4e | 0 size.|..nc = N|
|00002580| 65 77 43 68 75 6e 6b 28 | 30 2c 30 2c 30 2c 43 54 |ewChunk(|0,0,0,CT|
|00002590| 5f 55 6e 77 72 69 74 74 | 65 6e 29 3b 0d 09 09 69 |_Unwritt|en);...i|
|000025a0| 66 20 28 66 63 29 20 7b | 0d 09 09 09 28 2a 66 63 |f (fc) {|....(*fc|
|000025b0| 29 2d 3e 6e 65 78 74 20 | 3d 20 6e 63 3b 0d 09 09 |)->next |= nc;...|
|000025c0| 09 28 2a 6e 63 29 2d 3e | 61 64 64 72 20 3d 20 28 |.(*nc)->|addr = (|
|000025d0| 2a 66 63 29 2d 3e 61 64 | 64 72 20 2b 20 28 2a 66 |*fc)->ad|dr + (*f|
|000025e0| 63 29 2d 3e 73 69 7a 65 | 3b 0d 09 09 7d 0d 09 09 |c)->size|;...}...|
|000025f0| 65 6c 73 65 0d 09 09 09 | 64 57 69 6e 2d 3e 66 69 |else....|dWin->fi|
|00002600| 72 73 74 43 68 75 6e 6b | 20 3d 20 6e 63 3b 0d 09 |rstChunk| = nc;..|
|00002610| 09 69 66 20 28 65 63 29 | 0d 09 09 09 28 2a 65 63 |.if (ec)|....(*ec|
|00002620| 29 2d 3e 70 72 65 76 20 | 3d 20 6e 63 3b 0d 09 09 |)->prev |= nc;...|
|00002630| 28 2a 6e 63 29 2d 3e 70 | 72 65 76 20 3d 20 66 63 |(*nc)->p|rev = fc|
|00002640| 3b 0d 09 09 28 2a 6e 63 | 29 2d 3e 6e 65 78 74 20 |;...(*nc|)->next |
|00002650| 3d 20 65 63 3b 0d 09 09 | 2f 2f 20 63 75 72 72 65 |= ec;...|// curre|
|00002660| 6e 74 20 63 68 75 6e 6b | 20 3d 20 6e 65 77 20 63 |nt chunk| = new c|
|00002670| 68 75 6e 6b 0d 09 09 64 | 57 69 6e 2d 3e 63 75 72 |hunk...d|Win->cur|
|00002680| 43 68 75 6e 6b 20 3d 20 | 6e 63 3b 0d 09 09 66 63 |Chunk = |nc;...fc|
|00002690| 20 3d 20 6e 63 3b 0d 09 | 7d 0d 0d 09 2f 2f 09 45 | = nc;..|}...//.E|
|000026a0| 78 70 61 6e 64 20 50 74 | 72 20 69 66 20 4e 65 63 |xpand Pt|r if Nec|
|000026b0| 65 73 73 61 72 79 0d 09 | 69 66 20 28 28 2a 66 63 |essary..|if ((*fc|
|000026c0| 29 2d 3e 61 6c 6c 6f 63 | 53 69 7a 65 20 3c 3d 20 |)->alloc|Size <= |
|000026d0| 28 2a 66 63 29 2d 3e 73 | 69 7a 65 29 20 7b 0d 09 |(*fc)->s|ize) {..|
|000026e0| 09 28 2a 66 63 29 2d 3e | 61 6c 6c 6f 63 53 69 7a |.(*fc)->|allocSiz|
|000026f0| 65 20 2b 3d 20 41 6c 6c | 6f 63 49 6e 63 72 3b 09 |e += All|ocIncr;.|
|00002700| 09 2f 2f 20 21 21 20 63 | 6f 6e 73 69 64 65 72 20 |.// !! c|onsider |
|00002710| 65 78 70 61 6e 64 69 6e | 67 20 61 73 20 73 69 7a |expandin|g as siz|
|00002720| 65 20 67 6f 65 73 20 75 | 70 0d 09 09 53 65 74 48 |e goes u|p...SetH|
|00002730| 61 6e 64 6c 65 53 69 7a | 65 28 28 2a 66 63 29 2d |andleSiz|e((*fc)-|
|00002740| 3e 64 61 74 61 2c 28 2a | 66 63 29 2d 3e 61 6c 6c |>data,(*|fc)->all|
|00002750| 6f 63 53 69 7a 65 29 3b | 0d 09 7d 0d 0d 09 2f 2f |ocSize);|..}...//|
|00002760| 20 4d 61 6b 65 20 52 6f | 6f 6d 20 66 6f 72 20 43 | Make Ro|om for C|
|00002770| 68 61 72 61 63 74 65 72 | 20 69 66 20 6e 65 63 65 |haracter| if nece|
|00002780| 73 73 61 72 79 0d 09 69 | 66 20 28 64 57 69 6e 2d |ssary..i|f (dWin-|
|00002790| 3e 73 74 61 72 74 53 65 | 6c 20 3c 20 28 2a 66 63 |>startSe|l < (*fc|
|000027a0| 29 2d 3e 61 64 64 72 20 | 2b 20 28 2a 66 63 29 2d |)->addr |+ (*fc)-|
|000027b0| 3e 73 69 7a 65 29 0d 09 | 09 42 6c 6f 63 6b 4d 6f |>size)..|.BlockMo|
|000027c0| 76 65 28 2a 28 2a 66 63 | 29 2d 3e 64 61 74 61 20 |ve(*(*fc|)->data |
|000027d0| 2b 20 28 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 |+ (dWin-|>startSe|
|000027e0| 6c 20 2d 20 28 2a 66 63 | 29 2d 3e 61 64 64 72 29 |l - (*fc|)->addr)|
|000027f0| 2c 20 0d 09 09 09 09 20 | 20 2a 28 2a 66 63 29 2d |, ..... | *(*fc)-|
|00002800| 3e 64 61 74 61 20 2b 20 | 28 31 2b 28 64 57 69 6e |>data + |(1+(dWin|
|00002810| 2d 3e 73 74 61 72 74 53 | 65 6c 20 2d 20 28 2a 66 |->startS|el - (*f|
|00002820| 63 29 2d 3e 61 64 64 72 | 29 29 2c 20 0d 09 09 09 |c)->addr|)), ....|
|00002830| 09 20 20 28 2a 66 63 29 | 2d 3e 61 64 64 72 20 2b |. (*fc)|->addr +|
|00002840| 20 28 2a 66 63 29 2d 3e | 73 69 7a 65 20 2d 20 64 | (*fc)->|size - d|
|00002850| 57 69 6e 2d 3e 73 74 61 | 72 74 53 65 6c 29 3b 0d |Win->sta|rtSel);.|
|00002860| 0d 09 2f 2f 09 49 6e 73 | 65 72 74 20 43 68 61 72 |..//.Ins|ert Char|
|00002870| 20 69 6e 74 6f 20 62 75 | 66 66 65 72 0d 09 28 2a | into bu|ffer..(*|
|00002880| 28 2a 66 63 29 2d 3e 64 | 61 74 61 29 5b 64 57 69 |(*fc)->d|ata)[dWi|
|00002890| 6e 2d 3e 73 74 61 72 74 | 53 65 6c 20 2d 20 28 2a |n->start|Sel - (*|
|000028a0| 66 63 29 2d 3e 61 64 64 | 72 5d 20 3d 20 63 68 61 |fc)->add|r] = cha|
|000028b0| 72 43 6f 64 65 3b 0d 0d | 09 2f 2f 09 55 70 64 61 |rCode;..|.//.Upda|
|000028c0| 74 65 20 46 69 65 6c 64 | 73 20 69 6e 20 74 68 69 |te Field|s in thi|
|000028d0| 73 20 63 68 75 6e 6b 0d | 09 28 2a 66 63 29 2d 3e |s chunk.|.(*fc)->|
|000028e0| 73 69 7a 65 2b 2b 3b 0d | 09 64 57 69 6e 2d 3e 66 |size++;.|.dWin->f|
|000028f0| 69 6c 65 53 69 7a 65 2b | 2b 3b 0d 0d 09 2f 2f 20 |ileSize+|+;...// |
|00002900| 53 65 74 20 44 69 72 74 | 79 20 46 6c 61 67 0d 09 |Set Dirt|y Flag..|
|00002910| 64 57 69 6e 2d 3e 64 69 | 72 74 79 46 6c 61 67 20 |dWin->di|rtyFlag |
|00002920| 3d 20 74 72 75 65 3b 0d | 0d 09 2f 2f 09 55 70 64 |= true;.|..//.Upd|
|00002930| 61 74 65 20 61 64 64 72 | 20 66 69 65 6c 64 73 20 |ate addr| fields |
|00002940| 6f 66 20 66 6f 6c 6c 6f | 77 69 6e 67 20 63 68 75 |of follo|wing chu|
|00002950| 6e 6b 73 0d 09 52 65 77 | 72 69 74 65 41 64 64 72 |nks..Rew|riteAddr|
|00002960| 65 73 73 43 68 61 69 6e | 28 66 63 29 3b 0d 0d 09 |essChain|(fc);...|
|00002970| 2f 2f 20 49 6e 63 72 65 | 6d 65 6e 74 20 63 75 72 |// Incre|ment cur|
|00002980| 72 65 6e 74 20 53 65 6c | 65 63 74 69 6f 6e 0d 09 |rent Sel|ection..|
|00002990| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 2b 2b |dWin->st|artSel++|
|000029a0| 3b 0d 09 64 57 69 6e 2d | 3e 65 6e 64 53 65 6c 2b |;..dWin-|>endSel+|
|000029b0| 2b 3b 0d 0d 0d 09 2f 2f | 20 55 70 64 61 74 65 20 |+;....//| Update |
|000029c0| 44 69 73 70 6c 61 79 0d | 09 53 63 72 6f 6c 6c 54 |Display.|.ScrollT|
|000029d0| 6f 53 65 6c 65 63 74 69 | 6f 6e 28 64 57 69 6e 2c |oSelecti|on(dWin,|
|000029e0| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 2c 74 |dWin->st|artSel,t|
|000029f0| 72 75 65 2c 20 66 61 6c | 73 65 29 3b 0d 7d 0d 0d |rue, fal|se);.}..|
|00002a00| 76 6f 69 64 20 52 65 6c | 65 61 73 65 45 64 69 74 |void Rel|easeEdit|
|00002a10| 53 63 72 61 70 28 45 64 | 69 74 57 69 6e 64 6f 77 |Scrap(Ed|itWindow|
|00002a20| 50 74 72 20 64 57 69 6e | 2c 20 45 64 69 74 43 68 |Ptr dWin|, EditCh|
|00002a30| 75 6e 6b 20 2a 2a 2a 73 | 63 72 61 70 29 0d 7b 0d |unk ***s|crap).{.|
|00002a40| 09 45 64 69 74 43 68 75 | 6e 6b 09 2a 2a 63 63 2c |.EditChu|nk.**cc,|
|00002a50| 2a 2a 62 63 3b 0d 09 63 | 63 20 3d 20 2a 73 63 72 |**bc;..c|c = *scr|
|00002a60| 61 70 3b 0d 09 77 68 69 | 6c 65 20 28 63 63 29 20 |ap;..whi|le (cc) |
|00002a70| 7b 0d 09 09 62 63 20 3d | 20 28 2a 63 63 29 2d 3e |{...bc =| (*cc)->|
|00002a80| 6e 65 78 74 3b 0d 09 09 | 44 69 73 70 6f 73 65 43 |next;...|DisposeC|
|00002a90| 68 75 6e 6b 28 64 57 69 | 6e 2c 20 63 63 29 3b 0d |hunk(dWi|n, cc);.|
|00002aa0| 09 09 63 63 20 3d 20 62 | 63 3b 0d 09 7d 0d 09 2a |..cc = b|c;..}..*|
|00002ab0| 73 63 72 61 70 20 3d 20 | 4e 55 4c 4c 3b 0d 7d 0d |scrap = |NULL;.}.|
|00002ac0| 0d 2f 2f 20 48 69 67 68 | 20 4c 65 76 65 6c 20 43 |.// High| Level C|
|00002ad0| 6f 70 79 0d 76 6f 69 64 | 20 43 6f 70 79 53 65 6c |opy.void| CopySel|
|00002ae0| 65 63 74 69 6f 6e 28 45 | 64 69 74 57 69 6e 64 6f |ection(E|ditWindo|
|00002af0| 77 50 74 72 20 64 57 69 | 6e 29 0d 7b 0d 09 43 6f |wPtr dWi|n).{..Co|
|00002b00| 70 79 4f 70 65 72 61 74 | 69 6f 6e 28 64 57 69 6e |pyOperat|ion(dWin|
|00002b10| 2c 20 26 67 53 63 72 61 | 70 43 68 75 6e 6b 29 3b |, &gScra|pChunk);|
|00002b20| 0d 09 69 66 20 28 67 53 | 63 72 61 70 43 68 75 6e |..if (gS|crapChun|
|00002b30| 6b 29 20 7b 0d 09 09 2f | 2f 20 43 6f 70 79 20 74 |k) {.../|/ Copy t|
|00002b40| 6f 20 44 65 73 6b 20 53 | 63 72 61 70 0d 09 09 5a |o Desk S|crap...Z|
|00002b50| 65 72 6f 53 63 72 61 70 | 28 29 3b 0d 09 09 48 4c |eroScrap|();...HL|
|00002b60| 6f 63 6b 28 28 2a 67 53 | 63 72 61 70 43 68 75 6e |ock((*gS|crapChun|
|00002b70| 6b 29 2d 3e 64 61 74 61 | 29 3b 0d 09 09 50 75 74 |k)->data|);...Put|
|00002b80| 53 63 72 61 70 28 28 2a | 67 53 63 72 61 70 43 68 |Scrap((*|gScrapCh|
|00002b90| 75 6e 6b 29 2d 3e 73 69 | 7a 65 2c 20 27 54 45 58 |unk)->si|ze, 'TEX|
|00002ba0| 54 27 2c 20 2a 28 2a 67 | 53 63 72 61 70 43 68 75 |T', *(*g|ScrapChu|
|00002bb0| 6e 6b 29 2d 3e 64 61 74 | 61 29 3b 0d 09 09 48 55 |nk)->dat|a);...HU|
|00002bc0| 6e 6c 6f 63 6b 28 28 2a | 67 53 63 72 61 70 43 68 |nlock((*|gScrapCh|
|00002bd0| 75 6e 6b 29 2d 3e 64 61 | 74 61 29 3b 0d 09 09 67 |unk)->da|ta);...g|
|00002be0| 53 63 72 61 70 43 6f 75 | 6e 74 20 3d 20 53 63 72 |ScrapCou|nt = Scr|
|00002bf0| 61 70 49 6e 66 6f 2e 73 | 63 72 61 70 43 6f 75 6e |apInfo.s|crapCoun|
|00002c00| 74 3b 0d 09 09 28 2a 67 | 53 63 72 61 70 43 68 75 |t;...(*g|ScrapChu|
|00002c10| 6e 6b 29 2d 3e 6c 61 73 | 74 43 74 72 20 3d 20 30 |nk)->las|tCtr = 0|
|00002c20| 3b 09 2f 2f 20 46 6c 61 | 67 20 61 73 20 69 6e 74 |;.// Fla|g as int|
|00002c30| 65 72 6e 61 6c 0d 09 7d | 0d 7d 0d 0d 0d 0d 76 6f |ernal..}|.}....vo|
|00002c40| 69 64 20 43 6f 70 79 4f | 70 65 72 61 74 69 6f 6e |id CopyO|peration|
|00002c50| 28 45 64 69 74 57 69 6e | 64 6f 77 50 74 72 20 64 |(EditWin|dowPtr d|
|00002c60| 57 69 6e 2c 20 45 64 69 | 74 43 68 75 6e 6b 20 2a |Win, Edi|tChunk *|
|00002c70| 2a 2a 73 63 72 61 70 43 | 68 75 6e 6b 29 0d 7b 0d |**scrapC|hunk).{.|
|00002c80| 09 45 64 69 74 43 68 75 | 6e 6b 09 2a 2a 66 63 2c |.EditChu|nk.**fc,|
|00002c90| 2a 2a 65 63 2c 2a 2a 6e | 63 2c 2a 2a 74 63 3b 0d |**ec,**n|c,**tc;.|
|00002ca0| 09 2f 2f 20 55 6e 6c 6f | 61 64 20 63 75 72 72 65 |.// Unlo|ad curre|
|00002cb0| 6e 74 20 73 63 72 61 70 | 0d 09 52 65 6c 65 61 73 |nt scrap|..Releas|
|00002cc0| 65 45 64 69 74 53 63 72 | 61 70 28 64 57 69 6e 2c |eEditScr|ap(dWin,|
|00002cd0| 20 73 63 72 61 70 43 68 | 75 6e 6b 29 3b 0d 0d 09 | scrapCh|unk);...|
|00002ce0| 2f 2f 20 43 6f 70 79 20 | 63 75 72 72 65 6e 74 20 |// Copy |current |
|00002cf0| 73 65 6c 65 63 74 69 6f | 6e 20 69 6e 74 6f 20 73 |selectio|n into s|
|00002d00| 63 72 61 70 43 68 75 6e | 6b 0d 09 2f 2f 20 49 64 |crapChun|k..// Id|
|00002d10| 65 6e 74 69 66 79 20 53 | 74 61 72 74 69 6e 67 20 |entify S|tarting |
|00002d20| 43 68 75 6e 6b 0d 09 66 | 63 20 3d 20 47 65 74 43 |Chunk..f|c = GetC|
|00002d30| 68 75 6e 6b 42 79 41 64 | 64 72 28 64 57 69 6e 2c |hunkByAd|dr(dWin,|
|00002d40| 20 64 57 69 6e 2d 3e 73 | 74 61 72 74 53 65 6c 29 | dWin->s|tartSel)|
|00002d50| 3b 0d 09 64 57 69 6e 2d | 3e 63 75 72 43 68 75 6e |;..dWin-|>curChun|
|00002d60| 6b 20 3d 20 66 63 3b 09 | 09 2f 2f 20 4f 70 74 69 |k = fc;.|.// Opti|
|00002d70| 6d 69 7a 65 20 63 68 75 | 6e 6b 20 73 65 61 72 63 |mize chu|nk searc|
|00002d80| 68 65 73 0d 0d 09 2f 2f | 20 49 64 65 6e 74 69 66 |hes...//| Identif|
|00002d90| 79 20 45 6e 64 69 6e 67 | 20 43 68 75 6e 6b 0d 09 |y Ending| Chunk..|
|00002da0| 65 63 20 3d 20 47 65 74 | 43 68 75 6e 6b 42 79 41 |ec = Get|ChunkByA|
|00002db0| 64 64 72 28 64 57 69 6e | 2c 20 64 57 69 6e 2d 3e |ddr(dWin|, dWin->|
|00002dc0| 65 6e 64 53 65 6c 29 3b | 0d 0d 09 2f 2f 20 49 66 |endSel);|...// If|
|00002dd0| 20 43 68 75 6e 6b 73 20 | 61 72 65 20 74 68 65 20 | Chunks |are the |
|00002de0| 73 61 6d 65 0d 09 6e 63 | 20 3d 20 4e 65 77 43 68 |same..nc| = NewCh|
|00002df0| 75 6e 6b 28 64 57 69 6e | 2d 3e 65 6e 64 53 65 6c |unk(dWin|->endSel|
|00002e00| 20 2d 20 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 | - dWin-|>startSe|
|00002e10| 6c 2c 0d 09 09 09 09 20 | 20 30 2c 0d 09 09 09 09 |l,..... | 0,.....|
|00002e20| 20 20 30 2c 0d 09 09 09 | 09 20 20 43 54 5f 55 6e | 0,....|. CT_Un|
|00002e30| 77 72 69 74 74 65 6e 29 | 3b 0d 09 69 66 20 28 6e |written)|;..if (n|
|00002e40| 63 20 3d 3d 20 4e 55 4c | 4c 29 0d 09 09 72 65 74 |c == NUL|L)...ret|
|00002e50| 75 72 6e 3b 0d 0d 09 2a | 73 63 72 61 70 43 68 75 |urn;...*|scrapChu|
|00002e60| 6e 6b 20 3d 20 6e 63 3b | 0d 0d 09 69 66 20 28 66 |nk = nc;|...if (f|
|00002e70| 63 20 3d 3d 20 65 63 29 | 20 7b 0d 09 09 4c 6f 61 |c == ec)| {...Loa|
|00002e80| 64 43 68 75 6e 6b 28 64 | 57 69 6e 2c 20 66 63 29 |dChunk(d|Win, fc)|
|00002e90| 3b 0d 09 09 42 6c 6f 63 | 6b 4d 6f 76 65 28 2a 28 |;...Bloc|kMove(*(|
|00002ea0| 2a 66 63 29 2d 3e 64 61 | 74 61 20 2b 20 28 64 57 |*fc)->da|ta + (dW|
|00002eb0| 69 6e 2d 3e 73 74 61 72 | 74 53 65 6c 20 2d 20 28 |in->star|tSel - (|
|00002ec0| 2a 66 63 29 2d 3e 61 64 | 64 72 29 2c 0d 09 09 09 |*fc)->ad|dr),....|
|00002ed0| 09 20 20 2a 28 2a 6e 63 | 29 2d 3e 64 61 74 61 2c |. *(*nc|)->data,|
|00002ee0| 0d 09 09 09 09 20 20 28 | 2a 6e 63 29 2d 3e 73 69 |..... (|*nc)->si|
|00002ef0| 7a 65 29 3b 0d 09 7d 0d | 09 65 6c 73 65 20 7b 0d |ze);..}.|.else {.|
|00002f00| 09 09 2f 2f 20 46 69 72 | 73 74 20 43 68 75 6e 6b |..// Fir|st Chunk|
|00002f10| 20 74 6f 20 45 6e 64 0d | 09 09 74 63 20 3d 20 66 | to End.|..tc = f|
|00002f20| 63 3b 0d 09 09 4c 6f 61 | 64 43 68 75 6e 6b 28 64 |c;...Loa|dChunk(d|
|00002f30| 57 69 6e 2c 20 74 63 29 | 3b 0d 09 09 42 6c 6f 63 |Win, tc)|;...Bloc|
|00002f40| 6b 4d 6f 76 65 28 2a 28 | 2a 74 63 29 2d 3e 64 61 |kMove(*(|*tc)->da|
|00002f50| 74 61 20 2b 20 28 64 57 | 69 6e 2d 3e 73 74 61 72 |ta + (dW|in->star|
|00002f60| 74 53 65 6c 20 2d 20 28 | 2a 74 63 29 2d 3e 61 64 |tSel - (|*tc)->ad|
|00002f70| 64 72 29 2c 0d 09 09 09 | 09 20 20 2a 28 2a 6e 63 |dr),....|. *(*nc|
|00002f80| 29 2d 3e 64 61 74 61 2c | 0d 09 09 09 09 20 20 28 |)->data,|..... (|
|00002f90| 2a 74 63 29 2d 3e 73 69 | 7a 65 20 2d 20 28 64 57 |*tc)->si|ze - (dW|
|00002fa0| 69 6e 2d 3e 73 74 61 72 | 74 53 65 6c 20 2d 20 28 |in->star|tSel - (|
|00002fb0| 2a 74 63 29 2d 3e 61 64 | 64 72 29 29 3b 0d 09 09 |*tc)->ad|dr));...|
|00002fc0| 74 63 20 3d 20 28 2a 74 | 63 29 2d 3e 6e 65 78 74 |tc = (*t|c)->next|
|00002fd0| 3b 0d 0d 09 09 2f 2f 20 | 4d 69 64 64 6c 65 20 43 |;....// |Middle C|
|00002fe0| 68 75 6e 6b 73 2c 20 49 | 66 20 41 6e 79 0d 09 09 |hunks, I|f Any...|
|00002ff0| 77 68 69 6c 65 20 28 74 | 63 20 21 3d 20 65 63 29 |while (t|c != ec)|
|00003000| 20 7b 0d 09 09 09 4c 6f | 61 64 43 68 75 6e 6b 28 | {....Lo|adChunk(|
|00003010| 64 57 69 6e 2c 20 74 63 | 29 3b 0d 09 09 09 42 6c |dWin, tc|);....Bl|
|00003020| 6f 63 6b 4d 6f 76 65 28 | 2a 28 2a 74 63 29 2d 3e |ockMove(|*(*tc)->|
|00003030| 64 61 74 61 2c 0d 09 09 | 09 09 09 20 20 2a 28 2a |data,...|... *(*|
|00003040| 6e 63 29 2d 3e 64 61 74 | 61 20 2b 20 28 28 2a 74 |nc)->dat|a + ((*t|
|00003050| 63 29 2d 3e 61 64 64 72 | 20 2d 20 64 57 69 6e 2d |c)->addr| - dWin-|
|00003060| 3e 73 74 61 72 74 53 65 | 6c 29 2c 0d 09 09 09 09 |>startSe|l),.....|
|00003070| 09 20 20 28 2a 74 63 29 | 2d 3e 73 69 7a 65 29 3b |. (*tc)|->size);|
|00003080| 0d 09 09 09 74 63 20 3d | 20 28 2a 74 63 29 2d 3e |....tc =| (*tc)->|
|00003090| 6e 65 78 74 3b 0d 09 09 | 7d 0d 0d 09 09 2f 2f 20 |next;...|}....// |
|000030a0| 4c 61 73 74 20 43 68 75 | 6e 6b 0d 09 09 4c 6f 61 |Last Chu|nk...Loa|
|000030b0| 64 43 68 75 6e 6b 28 64 | 57 69 6e 2c 20 74 63 29 |dChunk(d|Win, tc)|
|000030c0| 3b 0d 09 09 42 6c 6f 63 | 6b 4d 6f 76 65 28 2a 28 |;...Bloc|kMove(*(|
|000030d0| 2a 74 63 29 2d 3e 64 61 | 74 61 2c 0d 09 09 09 09 |*tc)->da|ta,.....|
|000030e0| 20 20 2a 28 2a 6e 63 29 | 2d 3e 64 61 74 61 20 2b | *(*nc)|->data +|
|000030f0| 20 28 28 2a 74 63 29 2d | 3e 61 64 64 72 20 2d 20 | ((*tc)-|>addr - |
|00003100| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 29 2c |dWin->st|artSel),|
|00003110| 0d 09 09 09 09 20 20 64 | 57 69 6e 2d 3e 65 6e 64 |..... d|Win->end|
|00003120| 53 65 6c 20 2d 20 28 2a | 74 63 29 2d 3e 61 64 64 |Sel - (*|tc)->add|
|00003130| 72 29 3b 0d 09 7d 0d 7d | 0d 0d 76 6f 69 64 20 43 |r);..}.}|..void C|
|00003140| 75 74 53 65 6c 65 63 74 | 69 6f 6e 28 45 64 69 74 |utSelect|ion(Edit|
|00003150| 57 69 6e 64 6f 77 50 74 | 72 20 64 57 69 6e 29 0d |WindowPt|r dWin).|
|00003160| 7b 0d 09 52 65 6d 65 6d | 62 65 72 4f 70 65 72 61 |{..Remem|berOpera|
|00003170| 74 69 6f 6e 28 64 57 69 | 6e 2c 20 45 4f 5f 43 75 |tion(dWi|n, EO_Cu|
|00003180| 74 2c 20 26 67 55 6e 64 | 6f 52 65 63 29 3b 0d 09 |t, &gUnd|oRec);..|
|00003190| 43 6f 70 79 4f 70 65 72 | 61 74 69 6f 6e 28 64 57 |CopyOper|ation(dW|
|000031a0| 69 6e 2c 20 26 67 53 63 | 72 61 70 43 68 75 6e 6b |in, &gSc|rapChunk|
|000031b0| 29 3b 09 09 2f 2f 20 43 | 6f 70 79 20 69 6e 74 6f |);..// C|opy into|
|000031c0| 20 70 61 73 74 65 20 62 | 75 66 66 65 72 0d 09 44 | paste b|uffer..D|
|000031d0| 65 6c 65 74 65 53 65 6c | 65 63 74 69 6f 6e 28 64 |eleteSel|ection(d|
|000031e0| 57 69 6e 29 3b 0d 09 64 | 57 69 6e 2d 3e 64 69 72 |Win);..d|Win->dir|
|000031f0| 74 79 46 6c 61 67 20 3d | 20 74 72 75 65 3b 0d 09 |tyFlag =| true;..|
|00003200| 53 63 72 6f 6c 6c 54 6f | 53 65 6c 65 63 74 69 6f |ScrollTo|Selectio|
|00003210| 6e 28 64 57 69 6e 2c 64 | 57 69 6e 2d 3e 73 74 61 |n(dWin,d|Win->sta|
|00003220| 72 74 53 65 6c 2c 74 72 | 75 65 2c 20 66 61 6c 73 |rtSel,tr|ue, fals|
|00003230| 65 29 3b 0d 7d 0d 0d 2f | 2f 20 48 69 67 68 20 4c |e);.}../|/ High L|
|00003240| 65 76 65 6c 20 50 61 73 | 74 65 0d 76 6f 69 64 20 |evel Pas|te.void |
|00003250| 50 61 73 74 65 53 65 6c | 65 63 74 69 6f 6e 28 45 |PasteSel|ection(E|
|00003260| 64 69 74 57 69 6e 64 6f | 77 50 74 72 20 64 57 69 |ditWindo|wPtr dWi|
|00003270| 6e 29 0d 7b 0d 09 52 65 | 6d 65 6d 62 65 72 4f 70 |n).{..Re|memberOp|
|00003280| 65 72 61 74 69 6f 6e 28 | 64 57 69 6e 2c 20 45 4f |eration(|dWin, EO|
|00003290| 5f 50 61 73 74 65 2c 20 | 26 67 55 6e 64 6f 52 65 |_Paste, |&gUndoRe|
|000032a0| 63 29 3b 0d 09 50 61 73 | 74 65 4f 70 65 72 61 74 |c);..Pas|teOperat|
|000032b0| 69 6f 6e 28 64 57 69 6e | 2c 20 67 53 63 72 61 70 |ion(dWin|, gScrap|
|000032c0| 43 68 75 6e 6b 29 3b 0d | 09 64 57 69 6e 2d 3e 64 |Chunk);.|.dWin->d|
|000032d0| 69 72 74 79 46 6c 61 67 | 20 3d 20 74 72 75 65 3b |irtyFlag| = true;|
|000032e0| 0d 09 53 63 72 6f 6c 6c | 54 6f 53 65 6c 65 63 74 |..Scroll|ToSelect|
|000032f0| 69 6f 6e 28 64 57 69 6e | 2c 64 57 69 6e 2d 3e 73 |ion(dWin|,dWin->s|
|00003300| 74 61 72 74 53 65 6c 2c | 74 72 75 65 2c 20 66 61 |tartSel,|true, fa|
|00003310| 6c 73 65 29 3b 0d 7d 0d | 0d 42 6f 6f 6c 65 61 6e |lse);.}.|.Boolean|
|00003320| 20 48 65 78 43 6f 6e 76 | 65 72 74 53 63 72 61 70 | HexConv|ertScrap|
|00003330| 28 45 64 69 74 57 69 6e | 64 6f 77 50 74 72 20 64 |(EditWin|dowPtr d|
|00003340| 57 69 6e 2c 20 45 64 69 | 74 43 68 75 6e 6b 20 2a |Win, Edi|tChunk *|
|00003350| 2a 73 63 72 61 70 43 68 | 75 6e 6b 29 0d 7b 0d 09 |*scrapCh|unk).{..|
|00003360| 48 61 6e 64 6c 65 09 72 | 68 3d 4e 55 4c 4c 3b 0d |Handle.r|h=NULL;.|
|00003370| 09 50 74 72 09 09 73 70 | 2c 64 70 2c 65 73 70 3b |.Ptr..sp|,dp,esp;|
|00003380| 0d 09 73 68 6f 72 74 09 | 76 61 6c 3b 0d 09 42 6f |..short.|val;..Bo|
|00003390| 6f 6c 65 61 6e 09 6c 6f | 46 6c 61 67 3b 0d 0d 09 |olean.lo|Flag;...|
|000033a0| 72 68 20 3d 20 4e 65 77 | 48 61 6e 64 6c 65 28 28 |rh = New|Handle((|
|000033b0| 2a 73 63 72 61 70 43 68 | 75 6e 6b 29 2d 3e 73 69 |*scrapCh|unk)->si|
|000033c0| 7a 65 29 3b 0d 09 69 66 | 20 28 72 68 20 3d 3d 20 |ze);..if| (rh == |
|000033d0| 4e 55 4c 4c 29 20 7b 0d | 09 09 45 72 72 6f 72 41 |NULL) {.|..ErrorA|
|000033e0| 6c 65 72 74 28 45 53 5f | 43 61 75 74 69 6f 6e 2c |lert(ES_|Caution,|
|000033f0| 20 22 4e 6f 74 20 65 6e | 6f 75 67 68 20 6d 65 6d | "Not en|ough mem|
|00003400| 6f 72 79 22 29 3b 0d 09 | 09 72 65 74 75 72 6e 20 |ory");..|.return |
|00003410| 66 61 6c 73 65 3b 0d 09 | 7d 0d 09 48 4c 6f 63 6b |false;..|}..HLock|
|00003420| 28 72 68 29 3b 0d 09 48 | 4c 6f 63 6b 28 28 2a 73 |(rh);..H|Lock((*s|
|00003430| 63 72 61 70 43 68 75 6e | 6b 29 2d 3e 64 61 74 61 |crapChun|k)->data|
|00003440| 29 3b 0d 09 73 70 20 3d | 20 2a 28 2a 73 63 72 61 |);..sp =| *(*scra|
|00003450| 70 43 68 75 6e 6b 29 2d | 3e 64 61 74 61 3b 0d 09 |pChunk)-|>data;..|
|00003460| 65 73 70 20 3d 20 73 70 | 20 2b 20 28 2a 73 63 72 |esp = sp| + (*scr|
|00003470| 61 70 43 68 75 6e 6b 29 | 2d 3e 73 69 7a 65 3b 0d |apChunk)|->size;.|
|00003480| 09 64 70 20 3d 20 2a 72 | 68 3b 0d 09 6c 6f 46 6c |.dp = *r|h;..loFl|
|00003490| 61 67 20 3d 20 66 61 6c | 73 65 3b 0d 09 66 6f 72 |ag = fal|se;..for|
|000034a0| 20 28 3b 20 73 70 20 3c | 20 65 73 70 3b 20 2b 2b | (; sp <| esp; ++|
|000034b0| 73 70 29 20 7b 0d 09 09 | 69 66 20 28 2a 73 70 20 |sp) {...|if (*sp |
|000034c0| 3d 3d 20 27 30 27 20 26 | 26 20 2a 28 73 70 2b 31 |== '0' &|& *(sp+1|
|000034d0| 29 20 3d 3d 20 27 78 27 | 29 20 7b 0d 09 09 09 6c |) == 'x'|) {....l|
|000034e0| 6f 46 6c 61 67 20 3d 20 | 30 3b 0d 09 09 09 2b 2b |oFlag = |0;....++|
|000034f0| 73 70 3b 0d 09 09 09 63 | 6f 6e 74 69 6e 75 65 3b |sp;....c|ontinue;|
|00003500| 0d 09 09 7d 0d 09 09 69 | 66 20 28 69 73 73 70 61 |...}...i|f (isspa|
|00003510| 63 65 28 2a 73 70 29 20 | 7c 7c 20 69 73 70 75 6e |ce(*sp) ||| ispun|
|00003520| 63 74 28 2a 73 70 29 29 | 20 7b 0d 09 09 09 6c 6f |ct(*sp))| {....lo|
|00003530| 46 6c 61 67 20 3d 20 30 | 3b 0d 09 09 09 63 6f 6e |Flag = 0|;....con|
|00003540| 74 69 6e 75 65 3b 0d 09 | 09 7d 0d 09 09 69 66 20 |tinue;..|.}...if |
|00003550| 28 2a 73 70 20 3e 3d 20 | 27 30 27 20 26 26 20 2a |(*sp >= |'0' && *|
|00003560| 73 70 20 3c 3d 20 27 39 | 27 29 0d 09 09 09 76 61 |sp <= '9|')....va|
|00003570| 6c 20 3d 20 2a 73 70 20 | 2d 20 27 30 27 3b 0d 09 |l = *sp |- '0';..|
|00003580| 09 65 6c 73 65 20 69 66 | 20 28 2a 73 70 20 3e 3d |.else if| (*sp >=|
|00003590| 20 27 41 27 20 26 26 20 | 2a 73 70 20 3c 3d 20 27 | 'A' && |*sp <= '|
|000035a0| 46 27 29 0d 09 09 09 76 | 61 6c 20 3d 20 30 78 30 |F')....v|al = 0x0|
|000035b0| 41 20 2b 20 28 2a 73 70 | 20 2d 20 27 41 27 29 3b |A + (*sp| - 'A');|
|000035c0| 0d 09 09 65 6c 73 65 20 | 69 66 20 28 2a 73 70 20 |...else |if (*sp |
|000035d0| 3e 3d 20 27 61 27 20 26 | 26 20 2a 73 70 20 3c 3d |>= 'a' &|& *sp <=|
|000035e0| 20 27 66 27 29 0d 09 09 | 09 76 61 6c 20 3d 20 30 | 'f')...|.val = 0|
|000035f0| 78 30 41 20 2b 20 28 2a | 73 70 20 2d 20 27 61 27 |x0A + (*|sp - 'a'|
|00003600| 29 3b 0d 09 09 65 6c 73 | 65 0d 09 09 09 67 6f 74 |);...els|e....got|
|00003610| 6f 20 48 65 78 45 72 72 | 6f 72 3b 0d 09 09 69 66 |o HexErr|or;...if|
|00003620| 20 28 6c 6f 46 6c 61 67 | 29 20 7b 0d 09 09 09 2a | (loFlag|) {....*|
|00003630| 28 64 70 2d 31 29 20 3d | 20 28 2a 28 64 70 2d 31 |(dp-1) =| (*(dp-1|
|00003640| 29 20 3c 3c 20 34 29 20 | 7c 20 76 61 6c 3b 0d 09 |) << 4) || val;..|
|00003650| 09 09 6c 6f 46 6c 61 67 | 20 3d 20 30 3b 0d 09 09 |..loFlag| = 0;...|
|00003660| 7d 09 09 09 0d 09 09 65 | 6c 73 65 20 7b 0d 09 09 |}......e|lse {...|
|00003670| 09 2a 64 70 20 3d 20 76 | 61 6c 3b 0d 09 09 09 2b |.*dp = v|al;....+|
|00003680| 2b 64 70 3b 0d 09 09 09 | 6c 6f 46 6c 61 67 20 3d |+dp;....|loFlag =|
|00003690| 20 31 3b 0d 09 09 7d 0d | 09 7d 0d 09 69 66 20 28 | 1;...}.|.}..if (|
|000036a0| 64 70 20 2d 20 2a 72 68 | 20 3d 3d 20 30 29 0d 09 |dp - *rh| == 0)..|
|000036b0| 09 67 6f 74 6f 20 48 65 | 78 45 72 72 6f 72 3b 0d |.goto He|xError;.|
|000036c0| 09 28 2a 73 63 72 61 70 | 43 68 75 6e 6b 29 2d 3e |.(*scrap|Chunk)->|
|000036d0| 73 69 7a 65 20 3d 20 64 | 70 20 2d 20 2a 72 68 3b |size = d|p - *rh;|
|000036e0| 0d 09 48 55 6e 6c 6f 63 | 6b 28 72 68 29 3b 0d 09 |..HUnloc|k(rh);..|
|000036f0| 48 55 6e 6c 6f 63 6b 28 | 28 2a 73 63 72 61 70 43 |HUnlock(|(*scrapC|
|00003700| 68 75 6e 6b 29 2d 3e 64 | 61 74 61 29 3b 0d 09 42 |hunk)->d|ata);..B|
|00003710| 6c 6f 63 6b 4d 6f 76 65 | 28 2a 72 68 2c 20 2a 28 |lockMove|(*rh, *(|
|00003720| 2a 73 63 72 61 70 43 68 | 75 6e 6b 29 2d 3e 64 61 |*scrapCh|unk)->da|
|00003730| 74 61 2c 20 28 2a 73 63 | 72 61 70 43 68 75 6e 6b |ta, (*sc|rapChunk|
|00003740| 29 2d 3e 73 69 7a 65 29 | 3b 0d 09 44 69 73 70 6f |)->size)|;..Dispo|
|00003750| 73 48 61 6e 64 6c 65 28 | 72 68 29 3b 0d 09 28 2a |sHandle(|rh);..(*|
|00003760| 73 63 72 61 70 43 68 75 | 6e 6b 29 2d 3e 6c 61 73 |scrapChu|nk)->las|
|00003770| 74 43 74 72 20 3d 20 30 | 3b 09 09 2f 2f 20 4d 61 |tCtr = 0|;..// Ma|
|00003780| 72 6b 20 61 73 20 49 6e | 74 65 72 6e 61 6c 0d 09 |rk as In|ternal..|
|00003790| 72 65 74 75 72 6e 20 74 | 72 75 65 3b 0d 48 65 78 |return t|rue;.Hex|
|000037a0| 45 72 72 6f 72 3a 0d 09 | 48 55 6e 6c 6f 63 6b 28 |Error:..|HUnlock(|
|000037b0| 72 68 29 3b 0d 09 48 55 | 6e 6c 6f 63 6b 28 28 2a |rh);..HU|nlock((*|
|000037c0| 73 63 72 61 70 43 68 75 | 6e 6b 29 2d 3e 64 61 74 |scrapChu|nk)->dat|
|000037d0| 61 29 3b 0d 09 45 72 72 | 6f 72 41 6c 65 72 74 28 |a);..Err|orAlert(|
|000037e0| 45 53 5f 43 61 75 74 69 | 6f 6e 2c 20 22 4f 6e 6c |ES_Cauti|on, "Onl|
|000037f0| 79 20 76 61 6c 69 64 20 | 48 65 78 20 76 61 6c 75 |y valid |Hex valu|
|00003800| 65 73 20 6d 61 79 20 62 | 65 20 70 61 73 74 65 64 |es may b|e pasted|
|00003810| 20 68 65 72 65 22 29 3b | 0d 09 44 69 73 70 6f 73 | here");|..Dispos|
|00003820| 48 61 6e 64 6c 65 28 72 | 68 29 3b 0d 09 72 65 74 |Handle(r|h);..ret|
|00003830| 75 72 6e 20 66 61 6c 73 | 65 3b 0d 7d 0d 0d 76 6f |urn fals|e;.}..vo|
|00003840| 69 64 20 50 61 73 74 65 | 4f 70 65 72 61 74 69 6f |id Paste|Operatio|
|00003850| 6e 28 45 64 69 74 57 69 | 6e 64 6f 77 50 74 72 20 |n(EditWi|ndowPtr |
|00003860| 64 57 69 6e 2c 20 45 64 | 69 74 43 68 75 6e 6b 20 |dWin, Ed|itChunk |
|00003870| 2a 2a 73 63 72 61 70 43 | 68 75 6e 6b 29 0d 7b 0d |**scrapC|hunk).{.|
|00003880| 09 45 64 69 74 43 68 75 | 6e 6b 20 2a 2a 66 63 2c |.EditChu|nk **fc,|
|00003890| 2a 2a 65 63 2c 2a 2a 6e | 63 3b 0d 0d 09 2f 2f 20 |**ec,**n|c;...// |
|000038a0| 48 65 78 20 50 61 73 74 | 69 6e 67 20 4d 6f 64 65 |Hex Past|ing Mode|
|000038b0| 20 66 6f 72 20 4f 75 74 | 73 69 64 65 20 50 61 73 | for Out|side Pas|
|000038c0| 74 65 73 0d 09 69 66 20 | 28 64 57 69 6e 2d 3e 65 |tes..if |(dWin->e|
|000038d0| 64 69 74 4d 6f 64 65 20 | 3d 3d 20 45 4d 5f 48 65 |ditMode |== EM_He|
|000038e0| 78 20 26 26 20 28 2a 67 | 53 63 72 61 70 43 68 75 |x && (*g|ScrapChu|
|000038f0| 6e 6b 29 2d 3e 6c 61 73 | 74 43 74 72 20 3d 3d 20 |nk)->las|tCtr == |
|00003900| 31 29 20 7b 0d 09 09 69 | 66 20 28 21 48 65 78 43 |1) {...i|f (!HexC|
|00003910| 6f 6e 76 65 72 74 53 63 | 72 61 70 28 64 57 69 6e |onvertSc|rap(dWin|
|00003920| 2c 73 63 72 61 70 43 68 | 75 6e 6b 29 29 0d 09 09 |,scrapCh|unk))...|
|00003930| 09 72 65 74 75 72 6e 3b | 0d 09 7d 0d 0d 09 2f 2f |.return;|..}...//|
|00003940| 20 43 72 65 61 74 65 20 | 64 75 70 6c 69 63 61 74 | Create |duplicat|
|00003950| 65 20 73 63 72 61 70 20 | 61 74 74 61 63 68 65 64 |e scrap |attached|
|00003960| 20 74 6f 20 6e 63 2d 3e | 6e 65 63 0d 09 6e 63 20 | to nc->|nec..nc |
|00003970| 3d 20 4e 65 77 43 68 75 | 6e 6b 28 28 2a 73 63 72 |= NewChu|nk((*scr|
|00003980| 61 70 43 68 75 6e 6b 29 | 2d 3e 73 69 7a 65 2c 0d |apChunk)|->size,.|
|00003990| 09 09 09 09 09 30 2c 0d | 09 09 09 09 09 30 2c 0d |.....0,.|.....0,.|
|000039a0| 09 09 09 09 09 43 54 5f | 55 6e 77 72 69 74 74 65 |.....CT_|Unwritte|
|000039b0| 6e 29 3b 0d 09 69 66 20 | 28 6e 63 20 3d 3d 20 4e |n);..if |(nc == N|
|000039c0| 55 4c 4c 29 0d 09 09 72 | 65 74 75 72 6e 3b 0d 0d |ULL)...r|eturn;..|
|000039d0| 09 42 6c 6f 63 6b 4d 6f | 76 65 28 2a 28 2a 73 63 |.BlockMo|ve(*(*sc|
|000039e0| 72 61 70 43 68 75 6e 6b | 29 2d 3e 64 61 74 61 2c |rapChunk|)->data,|
|000039f0| 0d 09 09 09 20 20 2a 28 | 2a 6e 63 29 2d 3e 64 61 |.... *(|*nc)->da|
|00003a00| 74 61 2c 0d 09 09 09 20 | 20 28 2a 6e 63 29 2d 3e |ta,.... | (*nc)->|
|00003a10| 73 69 7a 65 29 3b 0d 0d | 09 44 65 6c 65 74 65 53 |size);..|.DeleteS|
|00003a20| 65 6c 65 63 74 69 6f 6e | 28 64 57 69 6e 29 3b 0d |election|(dWin);.|
|00003a30| 09 2f 2f 20 49 6e 73 65 | 72 74 20 70 61 73 74 65 |.// Inse|rt paste|
|00003a40| 20 62 75 66 66 65 72 20 | 69 6e 74 6f 20 73 65 6c | buffer |into sel|
|00003a50| 53 74 61 72 74 0d 0d 09 | 66 63 20 3d 20 47 65 74 |Start...|fc = Get|
|00003a60| 43 68 75 6e 6b 42 79 41 | 64 64 72 28 64 57 69 6e |ChunkByA|ddr(dWin|
|00003a70| 2c 20 64 57 69 6e 2d 3e | 73 74 61 72 74 53 65 6c |, dWin->|startSel|
|00003a80| 29 3b 0d 09 69 66 20 28 | 28 2a 66 63 29 2d 3e 61 |);..if (|(*fc)->a|
|00003a90| 64 64 72 20 3c 20 64 57 | 69 6e 2d 3e 73 74 61 72 |ddr < dW|in->star|
|00003aa0| 74 53 65 6c 29 20 7b 0d | 09 09 2f 2f 20 53 70 6c |tSel) {.|..// Spl|
|00003ab0| 69 74 20 27 65 6d 20 75 | 70 0d 09 09 2f 2f 20 55 |it 'em u|p...// U|
|00003ac0| 6e 6c 6f 61 64 20 69 74 | 0d 09 09 55 6e 6c 6f 61 |nload it|...Unloa|
|00003ad0| 64 43 68 75 6e 6b 28 64 | 57 69 6e 2c 20 66 63 2c |dChunk(d|Win, fc,|
|00003ae0| 20 74 72 75 65 29 3b 0d | 0d 09 09 2f 2f 20 53 70 | true);.|...// Sp|
|00003af0| 6c 69 74 20 69 6e 74 6f | 20 74 77 6f 20 63 68 75 |lit into| two chu|
|00003b00| 6e 6b 73 0d 09 09 69 66 | 20 28 64 57 69 6e 2d 3e |nks...if| (dWin->|
|00003b10| 73 74 61 72 74 53 65 6c | 20 3c 20 28 2a 66 63 29 |startSel| < (*fc)|
|00003b20| 2d 3e 61 64 64 72 20 2b | 20 28 2a 66 63 29 2d 3e |->addr +| (*fc)->|
|00003b30| 73 69 7a 65 29 20 7b 0d | 09 09 09 65 63 20 3d 20 |size) {.|...ec = |
|00003b40| 4e 65 77 43 68 75 6e 6b | 28 28 2a 66 63 29 2d 3e |NewChunk|((*fc)->|
|00003b50| 73 69 7a 65 20 2d 20 28 | 64 57 69 6e 2d 3e 73 74 |size - (|dWin->st|
|00003b60| 61 72 74 53 65 6c 20 2d | 20 28 2a 66 63 29 2d 3e |artSel -| (*fc)->|
|00003b70| 61 64 64 72 29 2c 20 0d | 09 09 09 09 09 09 09 30 |addr), .|.......0|
|00003b80| 2c 20 0d 09 09 09 09 09 | 09 09 28 2a 66 63 29 2d |, ......|..(*fc)-|
|00003b90| 3e 66 69 6c 65 50 6f 73 | 20 2b 20 28 64 57 69 6e |>filePos| + (dWin|
|00003ba0| 2d 3e 73 74 61 72 74 53 | 65 6c 20 2d 20 28 2a 66 |->startS|el - (*f|
|00003bb0| 63 29 2d 3e 61 64 64 72 | 29 2c 20 0d 09 09 09 09 |c)->addr|), .....|
|00003bc0| 09 09 09 28 2a 66 63 29 | 2d 3e 74 79 70 65 29 3b |...(*fc)|->type);|
|00003bd0| 0d 09 09 09 28 2a 65 63 | 29 2d 3e 70 72 65 76 20 |....(*ec|)->prev |
|00003be0| 3d 20 66 63 3b 0d 09 09 | 09 28 2a 65 63 29 2d 3e |= fc;...|.(*ec)->|
|00003bf0| 6e 65 78 74 20 3d 20 28 | 2a 66 63 29 2d 3e 6e 65 |next = (|*fc)->ne|
|00003c00| 78 74 3b 0d 09 09 09 69 | 66 20 28 28 2a 65 63 29 |xt;....i|f ((*ec)|
|00003c10| 2d 3e 6e 65 78 74 29 0d | 09 09 09 09 28 2a 28 2a |->next).|....(*(*|
|00003c20| 65 63 29 2d 3e 6e 65 78 | 74 29 2d 3e 70 72 65 76 |ec)->nex|t)->prev|
|00003c30| 20 3d 20 65 63 3b 0d 09 | 09 7d 0d 09 09 65 6c 73 | = ec;..|.}...els|
|00003c40| 65 0d 09 09 09 65 63 20 | 3d 20 28 2a 66 63 29 2d |e....ec |= (*fc)-|
|00003c50| 3e 6e 65 78 74 3b 0d 0d | 09 09 28 2a 66 63 29 2d |>next;..|..(*fc)-|
|00003c60| 3e 6e 65 78 74 20 3d 20 | 65 63 3b 0d 09 09 28 2a |>next = |ec;...(*|
|00003c70| 66 63 29 2d 3e 73 69 7a | 65 20 3d 20 64 57 69 6e |fc)->siz|e = dWin|
|00003c80| 2d 3e 73 74 61 72 74 53 | 65 6c 20 2d 20 28 2a 66 |->startS|el - (*f|
|00003c90| 63 29 2d 3e 61 64 64 72 | 3b 0d 09 7d 0d 09 65 6c |c)->addr|;..}..el|
|00003ca0| 73 65 20 7b 0d 09 09 65 | 63 20 3d 20 66 63 3b 0d |se {...e|c = fc;.|
|00003cb0| 09 09 66 63 20 3d 20 28 | 2a 66 63 29 2d 3e 70 72 |..fc = (|*fc)->pr|
|00003cc0| 65 76 3b 0d 09 7d 0d 0d | 09 2f 2f 20 49 6e 73 65 |ev;..}..|.// Inse|
|00003cd0| 72 74 20 66 63 2d 3e 6e | 63 2d 3e 65 63 0d 09 69 |rt fc->n|c->ec..i|
|00003ce0| 66 20 28 66 63 29 20 7b | 0d 09 09 28 2a 66 63 29 |f (fc) {|...(*fc)|
|00003cf0| 2d 3e 6e 65 78 74 20 3d | 20 6e 63 3b 0d 09 09 28 |->next =| nc;...(|
|00003d00| 2a 6e 63 29 2d 3e 70 72 | 65 76 20 3d 20 66 63 3b |*nc)->pr|ev = fc;|
|00003d10| 0d 09 09 28 2a 6e 63 29 | 2d 3e 61 64 64 72 20 3d |...(*nc)|->addr =|
|00003d20| 20 28 2a 66 63 29 2d 3e | 61 64 64 72 20 2b 20 28 | (*fc)->|addr + (|
|00003d30| 2a 66 63 29 2d 3e 73 69 | 7a 65 3b 0d 09 7d 0d 09 |*fc)->si|ze;..}..|
|00003d40| 65 6c 73 65 20 7b 0d 09 | 09 64 57 69 6e 2d 3e 66 |else {..|.dWin->f|
|00003d50| 69 72 73 74 43 68 75 6e | 6b 20 3d 20 6e 63 3b 0d |irstChun|k = nc;.|
|00003d60| 09 09 28 2a 6e 63 29 2d | 3e 61 64 64 72 20 3d 20 |..(*nc)-|>addr = |
|00003d70| 30 4c 3b 0d 09 7d 0d 0d | 09 69 66 20 28 65 63 29 |0L;..}..|.if (ec)|
|00003d80| 20 7b 0d 09 09 28 2a 6e | 63 29 2d 3e 6e 65 78 74 | {...(*n|c)->next|
|00003d90| 20 3d 20 65 63 3b 0d 09 | 09 28 2a 65 63 29 2d 3e | = ec;..|.(*ec)->|
|00003da0| 70 72 65 76 20 3d 20 6e | 63 3b 0d 09 7d 0d 0d 09 |prev = n|c;..}...|
|00003db0| 2f 2f 20 43 6f 72 72 65 | 63 74 20 61 64 64 72 65 |// Corre|ct addre|
|00003dc0| 73 73 65 73 0d 09 52 65 | 77 72 69 74 65 41 64 64 |sses..Re|writeAdd|
|00003dd0| 72 65 73 73 43 68 61 69 | 6e 28 6e 63 29 3b 0d 0d |ressChai|n(nc);..|
|00003de0| 09 2f 2f 20 52 65 73 65 | 74 20 53 65 6c 65 63 74 |.// Rese|t Select|
|00003df0| 69 6f 6e 0d 09 64 57 69 | 6e 2d 3e 73 74 61 72 74 |ion..dWi|n->start|
|00003e00| 53 65 6c 20 3d 20 64 57 | 69 6e 2d 3e 65 6e 64 53 |Sel = dW|in->endS|
|00003e10| 65 6c 20 3d 20 28 2a 6e | 63 29 2d 3e 61 64 64 72 |el = (*n|c)->addr|
|00003e20| 20 2b 20 28 2a 6e 63 29 | 2d 3e 73 69 7a 65 3b 0d | + (*nc)|->size;.|
|00003e30| 0d 09 2f 2f 20 55 70 64 | 61 74 65 20 6f 74 68 65 |..// Upd|ate othe|
|00003e40| 72 20 73 74 75 66 66 0d | 09 64 57 69 6e 2d 3e 66 |r stuff.|.dWin->f|
|00003e50| 69 6c 65 53 69 7a 65 20 | 2b 3d 20 28 2a 73 63 72 |ileSize |+= (*scr|
|00003e60| 61 70 43 68 75 6e 6b 29 | 2d 3e 73 69 7a 65 3b 0d |apChunk)|->size;.|
|00003e70| 09 64 57 69 6e 2d 3e 64 | 69 72 74 79 46 6c 61 67 |.dWin->d|irtyFlag|
|00003e80| 20 3d 20 74 72 75 65 3b | 0d 7d 0d 0d 76 6f 69 64 | = true;|.}..void|
|00003e90| 20 43 6c 65 61 72 53 65 | 6c 65 63 74 69 6f 6e 28 | ClearSe|lection(|
|00003ea0| 45 64 69 74 57 69 6e 64 | 6f 77 50 74 72 20 64 57 |EditWind|owPtr dW|
|00003eb0| 69 6e 29 0d 7b 0d 09 52 | 65 6d 65 6d 62 65 72 4f |in).{..R|ememberO|
|00003ec0| 70 65 72 61 74 69 6f 6e | 28 64 57 69 6e 2c 20 45 |peration|(dWin, E|
|00003ed0| 4f 5f 43 6c 65 61 72 2c | 20 26 67 55 6e 64 6f 52 |O_Clear,| &gUndoR|
|00003ee0| 65 63 29 3b 0d 09 44 65 | 6c 65 74 65 53 65 6c 65 |ec);..De|leteSele|
|00003ef0| 63 74 69 6f 6e 28 64 57 | 69 6e 29 3b 0d 09 64 57 |ction(dW|in);..dW|
|00003f00| 69 6e 2d 3e 64 69 72 74 | 79 46 6c 61 67 20 3d 20 |in->dirt|yFlag = |
|00003f10| 74 72 75 65 3b 0d 09 53 | 63 72 6f 6c 6c 54 6f 53 |true;..S|crollToS|
|00003f20| 65 6c 65 63 74 69 6f 6e | 28 64 57 69 6e 2c 20 64 |election|(dWin, d|
|00003f30| 57 69 6e 2d 3e 73 74 61 | 72 74 53 65 6c 2c 20 74 |Win->sta|rtSel, t|
|00003f40| 72 75 65 2c 20 66 61 6c | 73 65 29 3b 0d 7d 0d 0d |rue, fal|se);.}..|
|00003f50| 2f 2f 20 52 65 6d 65 6d | 62 65 72 20 63 75 72 72 |// Remem|ber curr|
|00003f60| 65 6e 74 20 73 74 61 74 | 65 20 66 6f 72 20 55 6e |ent stat|e for Un|
|00003f70| 64 6f 20 6f 66 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |do of fo|llowing |
|00003f80| 6f 70 65 72 61 74 69 6f | 6e 0d 76 6f 69 64 20 52 |operatio|n.void R|
|00003f90| 65 6d 65 6d 62 65 72 4f | 70 65 72 61 74 69 6f 6e |ememberO|peration|
|00003fa0| 28 45 64 69 74 57 69 6e | 64 6f 77 50 74 72 20 64 |(EditWin|dowPtr d|
|00003fb0| 57 69 6e 2c 20 73 68 6f | 72 74 20 6f 70 54 79 70 |Win, sho|rt opTyp|
|00003fc0| 65 2c 20 55 6e 64 6f 52 | 65 63 6f 72 64 20 2a 75 |e, UndoR|ecord *u|
|00003fd0| 72 29 0d 7b 0d 09 2f 2f | 20 46 6f 72 67 65 74 20 |r).{..//| Forget |
|00003fe0| 4c 61 73 74 20 73 74 75 | 66 66 0d 09 69 66 20 28 |Last stu|ff..if (|
|00003ff0| 75 72 20 3d 3d 20 26 67 | 52 65 64 6f 52 65 63 29 |ur == &g|RedoRec)|
|00004000| 20 7b 0d 09 09 2f 2f 20 | 52 65 73 65 74 20 6d 65 | {...// |Reset me|
|00004010| 6e 75 20 74 65 78 74 20 | 74 6f 20 52 65 64 6f 0d |nu text |to Redo.|
|00004020| 09 09 53 74 72 33 31 09 | 6d 65 6e 75 53 74 72 3b |..Str31.|menuStr;|
|00004030| 0d 09 09 47 65 74 49 74 | 65 6d 28 67 45 64 69 74 |...GetIt|em(gEdit|
|00004040| 4d 65 6e 75 2c 20 45 4d | 5f 55 6e 64 6f 2c 20 6d |Menu, EM|_Undo, m|
|00004050| 65 6e 75 53 74 72 29 3b | 0d 09 09 69 66 20 28 6d |enuStr);|...if (m|
|00004060| 65 6e 75 53 74 72 5b 31 | 5d 20 3d 3d 20 27 52 27 |enuStr[1|] == 'R'|
|00004070| 29 0d 09 09 09 42 6c 6f | 63 6b 4d 6f 76 65 28 22 |)....Blo|ckMove("|
|00004080| 55 6e 22 2c 20 26 6d 65 | 6e 75 53 74 72 5b 31 5d |Un", &me|nuStr[1]|
|00004090| 2c 20 32 29 3b 0d 09 09 | 65 6c 73 65 0d 09 09 09 |, 2);...|else....|
|000040a0| 42 6c 6f 63 6b 4d 6f 76 | 65 28 22 52 65 22 2c 20 |BlockMov|e("Re", |
|000040b0| 26 6d 65 6e 75 53 74 72 | 5b 31 5d 2c 20 32 29 3b |&menuStr|[1], 2);|
|000040c0| 0d 09 09 53 65 74 49 74 | 65 6d 28 67 45 64 69 74 |...SetIt|em(gEdit|
|000040d0| 4d 65 6e 75 2c 20 45 4d | 5f 55 6e 64 6f 2c 20 6d |Menu, EM|_Undo, m|
|000040e0| 65 6e 75 53 74 72 29 3b | 0d 09 7d 0d 09 65 6c 73 |enuStr);|..}..els|
|000040f0| 65 20 7b 0d 09 09 53 74 | 72 33 31 09 75 6e 64 6f |e {...St|r31.undo|
|00004100| 53 74 72 3b 0d 09 09 53 | 74 72 33 31 09 6d 65 6e |Str;...S|tr31.men|
|00004110| 75 53 74 72 3b 0d 09 09 | 47 65 74 49 6e 64 53 74 |uStr;...|GetIndSt|
|00004120| 72 69 6e 67 28 75 6e 64 | 6f 53 74 72 2c 20 55 6e |ring(und|oStr, Un|
|00004130| 64 6f 53 54 52 73 2c 20 | 6f 70 54 79 70 65 29 3b |doSTRs, |opType);|
|00004140| 0d 09 09 42 6c 6f 63 6b | 4d 6f 76 65 28 22 5c 70 |...Block|Move("\p|
|00004150| 55 6e 64 6f 20 22 2c 20 | 6d 65 6e 75 53 74 72 2c |Undo ", |menuStr,|
|00004160| 20 36 29 3b 0d 09 09 42 | 6c 6f 63 6b 4d 6f 76 65 | 6);...B|lockMove|
|00004170| 28 26 75 6e 64 6f 53 74 | 72 5b 31 5d 2c 20 26 6d |(&undoSt|r[1], &m|
|00004180| 65 6e 75 53 74 72 5b 36 | 5d 2c 20 75 6e 64 6f 53 |enuStr[6|], undoS|
|00004190| 74 72 5b 30 5d 29 3b 0d | 09 09 6d 65 6e 75 53 74 |tr[0]);.|..menuSt|
|000041a0| 72 5b 30 5d 20 2b 3d 20 | 75 6e 64 6f 53 74 72 5b |r[0] += |undoStr[|
|000041b0| 30 5d 3b 0d 09 09 53 65 | 74 49 74 65 6d 28 67 45 |0];...Se|tItem(gE|
|000041c0| 64 69 74 4d 65 6e 75 2c | 20 45 4d 5f 55 6e 64 6f |ditMenu,| EM_Undo|
|000041d0| 2c 20 6d 65 6e 75 53 74 | 72 29 3b 0d 09 7d 0d 0d |, menuSt|r);..}..|
|000041e0| 09 52 65 6c 65 61 73 65 | 45 64 69 74 53 63 72 61 |.Release|EditScra|
|000041f0| 70 28 64 57 69 6e 2c 20 | 26 75 72 2d 3e 75 6e 64 |p(dWin, |&ur->und|
|00004200| 6f 53 63 72 61 70 29 3b | 0d 09 2f 2f 20 43 6c 65 |oScrap);|..// Cle|
|00004210| 61 72 20 55 6e 64 6f 20 | 53 74 75 66 66 0d 09 75 |ar Undo |Stuff..u|
|00004220| 72 2d 3e 75 6e 64 6f 53 | 63 72 61 70 20 3d 20 4e |r->undoS|crap = N|
|00004230| 55 4c 4c 3b 0d 09 75 72 | 2d 3e 74 79 70 65 20 3d |ULL;..ur|->type =|
|00004240| 20 6f 70 54 79 70 65 3b | 0d 09 75 72 2d 3e 73 74 | opType;|..ur->st|
|00004250| 61 72 74 53 65 6c 20 3d | 20 64 57 69 6e 2d 3e 73 |artSel =| dWin->s|
|00004260| 74 61 72 74 53 65 6c 3b | 0d 09 75 72 2d 3e 65 6e |tartSel;|..ur->en|
|00004270| 64 53 65 6c 20 3d 20 64 | 57 69 6e 2d 3e 65 6e 64 |dSel = d|Win->end|
|00004280| 53 65 6c 3b 0d 09 75 72 | 2d 3e 66 69 6c 65 53 69 |Sel;..ur|->fileSi|
|00004290| 7a 65 20 3d 20 64 57 69 | 6e 2d 3e 66 69 6c 65 53 |ze = dWi|n->fileS|
|000042a0| 69 7a 65 3b 0d 09 75 72 | 2d 3e 77 69 6e 64 6f 77 |ize;..ur|->window|
|000042b0| 20 3d 20 64 57 69 6e 3b | 0d 09 43 6f 70 79 4f 70 | = dWin;|..CopyOp|
|000042c0| 65 72 61 74 69 6f 6e 28 | 64 57 69 6e 2c 20 26 75 |eration(|dWin, &u|
|000042d0| 72 2d 3e 75 6e 64 6f 53 | 63 72 61 70 29 3b 0d 09 |r->undoS|crap);..|
|000042e0| 28 2a 75 72 2d 3e 75 6e | 64 6f 53 63 72 61 70 29 |(*ur->un|doScrap)|
|000042f0| 2d 3e 6c 61 73 74 43 74 | 72 3d 20 30 3b 0d 09 64 |->lastCt|r= 0;..d|
|00004300| 57 69 6e 2d 3e 6c 61 73 | 74 54 79 70 65 50 6f 73 |Win->las|tTypePos|
|00004310| 20 3d 20 2d 31 3b 09 2f | 2f 20 43 6c 65 61 72 20 | = -1;./|/ Clear |
|00004320| 53 70 65 63 69 61 6c 20 | 45 64 69 74 69 6e 67 20 |Special |Editing |
|00004330| 4d 6f 64 65 73 0d 09 64 | 57 69 6e 2d 3e 6c 6f 42 |Modes..d|Win->loB|
|00004340| 79 74 65 46 6c 61 67 20 | 3d 20 66 61 6c 73 65 3b |yteFlag |= false;|
|00004350| 0d 7d 0d 0d 76 6f 69 64 | 20 55 6e 64 6f 4f 70 65 |.}..void| UndoOpe|
|00004360| 72 61 74 69 6f 6e 28 29 | 0d 7b 0d 09 45 64 69 74 |ration()|.{..Edit|
|00004370| 57 69 6e 64 6f 77 50 74 | 72 09 64 57 69 6e 20 3d |WindowPt|r.dWin =|
|00004380| 20 67 55 6e 64 6f 52 65 | 63 2e 77 69 6e 64 6f 77 | gUndoRe|c.window|
|00004390| 3b 0d 0d 09 69 66 20 28 | 67 55 6e 64 6f 52 65 63 |;...if (|gUndoRec|
|000043a0| 2e 74 79 70 65 20 3d 3d | 20 30 29 0d 09 09 72 65 |.type ==| 0)...re|
|000043b0| 74 75 72 6e 3b 0d 09 69 | 66 20 28 64 57 69 6e 20 |turn;..i|f (dWin |
|000043c0| 21 3d 20 28 45 64 69 74 | 57 69 6e 64 6f 77 50 74 |!= (Edit|WindowPt|
|000043d0| 72 29 20 46 72 6f 6e 74 | 57 69 6e 64 6f 77 28 29 |r) Front|Window()|
|000043e0| 29 0d 09 09 53 65 6c 65 | 63 74 57 69 6e 64 6f 77 |)...Sele|ctWindow|
|000043f0| 28 28 57 69 6e 64 6f 77 | 50 74 72 29 20 64 57 69 |((Window|Ptr) dWi|
|00004400| 6e 29 3b 0d 0d 09 73 77 | 69 74 63 68 20 28 67 55 |n);...sw|itch (gU|
|00004410| 6e 64 6f 52 65 63 2e 74 | 79 70 65 29 20 7b 0d 09 |ndoRec.t|ype) {..|
|00004420| 63 61 73 65 20 45 4f 5f | 54 79 70 69 6e 67 3a 0d |case EO_|Typing:.|
|00004430| 09 63 61 73 65 20 45 4f | 5f 50 61 73 74 65 3a 0d |.case EO|_Paste:.|
|00004440| 09 63 61 73 65 20 45 4f | 5f 49 6e 73 65 72 74 3a |.case EO|_Insert:|
|00004450| 0d 09 09 64 57 69 6e 2d | 3e 73 74 61 72 74 53 65 |...dWin-|>startSe|
|00004460| 6c 20 3d 20 67 55 6e 64 | 6f 52 65 63 2e 73 74 61 |l = gUnd|oRec.sta|
|00004470| 72 74 53 65 6c 3b 0d 09 | 09 64 57 69 6e 2d 3e 65 |rtSel;..|.dWin->e|
|00004480| 6e 64 53 65 6c 20 3d 20 | 64 57 69 6e 2d 3e 66 69 |ndSel = |dWin->fi|
|00004490| 6c 65 53 69 7a 65 20 2d | 20 28 67 55 6e 64 6f 52 |leSize -| (gUndoR|
|000044a0| 65 63 2e 66 69 6c 65 53 | 69 7a 65 20 2d 20 67 55 |ec.fileS|ize - gU|
|000044b0| 6e 64 6f 52 65 63 2e 65 | 6e 64 53 65 6c 29 3b 0d |ndoRec.e|ndSel);.|
|000044c0| 09 09 52 65 6d 65 6d 62 | 65 72 4f 70 65 72 61 74 |..Rememb|erOperat|
|000044d0| 69 6f 6e 28 64 57 69 6e | 2c 20 45 4f 5f 44 65 6c |ion(dWin|, EO_Del|
|000044e0| 65 74 65 2c 20 26 67 52 | 65 64 6f 52 65 63 29 3b |ete, &gR|edoRec);|
|000044f0| 0d 09 09 44 65 6c 65 74 | 65 53 65 6c 65 63 74 69 |...Delet|eSelecti|
|00004500| 6f 6e 28 64 57 69 6e 29 | 3b 0d 09 09 50 61 73 74 |on(dWin)|;...Past|
|00004510| 65 4f 70 65 72 61 74 69 | 6f 6e 28 64 57 69 6e 2c |eOperati|on(dWin,|
|00004520| 20 67 55 6e 64 6f 52 65 | 63 2e 75 6e 64 6f 53 63 | gUndoRe|c.undoSc|
|00004530| 72 61 70 29 3b 0d 09 09 | 62 72 65 61 6b 3b 0d 09 |rap);...|break;..|
|00004540| 63 61 73 65 20 45 4f 5f | 43 75 74 3a 0d 09 63 61 |case EO_|Cut:..ca|
|00004550| 73 65 20 45 4f 5f 43 6c | 65 61 72 3a 0d 09 63 61 |se EO_Cl|ear:..ca|
|00004560| 73 65 20 45 4f 5f 44 65 | 6c 65 74 65 3a 0d 09 09 |se EO_De|lete:...|
|00004570| 64 57 69 6e 2d 3e 73 74 | 61 72 74 53 65 6c 20 3d |dWin->st|artSel =|
|00004580| 20 64 57 69 6e 2d 3e 65 | 6e 64 53 65 6c 20 3d 20 | dWin->e|ndSel = |
|00004590| 67 55 6e 64 6f 52 65 63 | 2e 73 74 61 72 74 53 65 |gUndoRec|.startSe|
|000045a0| 6c 3b 0d 09 09 52 65 6d | 65 6d 62 65 72 4f 70 65 |l;...Rem|emberOpe|
|000045b0| 72 61 74 69 6f 6e 28 64 | 57 69 6e 2c 20 45 4f 5f |ration(d|Win, EO_|
|000045c0| 49 6e 73 65 72 74 2c 20 | 26 67 52 65 64 6f 52 65 |Insert, |&gRedoRe|
|000045d0| 63 29 3b 0d 09 09 50 61 | 73 74 65 4f 70 65 72 61 |c);...Pa|steOpera|
|000045e0| 74 69 6f 6e 28 64 57 69 | 6e 2c 20 67 55 6e 64 6f |tion(dWi|n, gUndo|
|000045f0| 52 65 63 2e 75 6e 64 6f | 53 63 72 61 70 29 3b 0d |Rec.undo|Scrap);.|
|00004600| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 0d 09 52 65 |..break;|..}...Re|
|00004610| 6c 65 61 73 65 45 64 69 | 74 53 63 72 61 70 28 64 |leaseEdi|tScrap(d|
|00004620| 57 69 6e 2c 20 26 67 55 | 6e 64 6f 52 65 63 2e 75 |Win, &gU|ndoRec.u|
|00004630| 6e 64 6f 53 63 72 61 70 | 29 3b 0d 09 67 55 6e 64 |ndoScrap|);..gUnd|
|00004640| 6f 52 65 63 20 3d 20 67 | 52 65 64 6f 52 65 63 3b |oRec = g|RedoRec;|
|00004650| 0d 09 67 52 65 64 6f 52 | 65 63 2e 75 6e 64 6f 53 |..gRedoR|ec.undoS|
|00004660| 63 72 61 70 20 3d 20 4e | 55 4c 4c 3b 0d 0d 09 53 |crap = N|ULL;...S|
|00004670| 63 72 6f 6c 6c 54 6f 53 | 65 6c 65 63 74 69 6f 6e |crollToS|election|
|00004680| 28 64 57 69 6e 2c 64 57 | 69 6e 2d 3e 73 74 61 72 |(dWin,dW|in->star|
|00004690| 74 53 65 6c 2c 74 72 75 | 65 2c 20 66 61 6c 73 65 |tSel,tru|e, false|
|000046a0| 29 3b 0d 7d 0d 0d 00 00 | 00 00 00 00 00 00 00 00 |);.}....|........|
|000046b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004700| 00 00 01 00 00 00 01 ce | 00 00 00 ce 00 00 00 66 |........|.......f|
|00004710| 00 86 00 00 1f 7c 00 00 | 00 00 71 56 00 8b 00 00 |.....|..|..qV....|
|00004720| 1f ee 00 00 00 00 74 4e | 00 90 00 00 20 60 00 00 |......tN|.... `..|
|00004730| 0e 45 64 69 74 52 6f 75 | 74 69 6e 65 73 2e 63 45 |.EditRou|tines.cE|
|00004740| 02 00 00 00 54 45 58 54 | 4b 41 48 4c 01 00 00 00 |....TEXT|KAHL....|
|00004750| 00 00 54 45 58 54 4b 41 | 48 4c 01 00 00 00 01 40 |..TEXTKA|HL.....@|
|00004760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004770| 00 00 a8 17 b6 21 00 00 | 46 26 00 00 02 34 00 00 |.....!..|F&...4..|
|00004780| 23 7e 00 00 00 00 59 a9 | 00 b8 00 00 23 f0 00 00 |#~....Y.|....#...|
|00004790| 00 00 78 de 00 bd 00 00 | 24 62 00 00 00 00 18 25 |..x.....|$b.....%|
|000047a0| 00 c2 00 00 24 d4 00 00 | 00 00 25 80 00 c7 00 00 |....$...|..%.....|
|000047b0| 25 46 00 00 00 00 24 6a | 00 cc 00 00 25 b8 00 00 |%F....$j|....%...|
|000047c0| 00 00 0d 9c 00 d1 00 00 | 26 2a 00 00 00 00 13 13 |........|&*......|
|000047d0| 00 e0 00 00 27 0e 00 00 | 00 00 58 a4 00 e5 00 00 |....'...|..X.....|
|000047e0| 27 80 00 00 00 00 54 35 | 00 ea 00 00 27 f2 00 00 |'.....T5|....'...|
|000047f0| 00 00 14 e8 00 ef 00 00 | 28 64 00 00 00 00 47 ea |........|(d....G.|
|00004800| 00 00 00 28 00 02 00 14 | 00 00 0d 53 00 93 00 4a |...(....|...S...J|
|00004810| 1c ec 00 00 05 2a 2a 63 | 63 20 00 12 00 00 0d 53 |.....**c|c .....S|
|00004820| 00 93 00 4a 1c d8 00 00 | 03 2a 63 63 00 00 00 48 |...J....|.*cc...H|
|00004830| 00 09 4d 6f 6e 61 63 6f | 00 00 00 00 00 00 00 00 |..Monaco|........|
|00004840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004850| 00 00 00 06 00 04 00 43 | 00 1f 01 c9 02 21 00 43 |.......C|.....!.C|
|00004860| 00 1f 01 c9 02 21 a9 33 | 6a 50 00 00 19 1b 00 00 |.....!.3|jP......|
|00004870| 19 1b 00 00 17 2d 01 00 | 00 00 00 52 00 03 00 12 |.....-..|...R....|
|00004880| 00 00 2c d2 01 d6 00 42 | 22 e0 00 00 03 66 63 20 |..,....B|"....fc |
|00004890| 00 1e 00 00 2c d2 01 d6 | 00 42 22 d0 00 00 0f 64 |....,...|.B"....d|
|000048a0| 57 69 6e 2d 3e 73 74 61 | 72 74 53 65 6c 20 00 20 |Win->sta|rtSel . |
|000048b0| 00 00 2c d2 01 d6 00 42 | 22 c0 00 00 11 64 57 69 |..,....B|"....dWi|
|000048c0| 6e 2d 3e 66 69 72 73 74 | 43 68 75 6e 6b 20 00 00 |n->first|Chunk ..|
|000048d0| 01 00 00 00 01 ce 00 00 | 00 ce 00 00 00 66 00 82 |........|.....f..|
|000048e0| 1f f4 16 0a 00 00 00 1c | 00 52 00 01 44 54 56 55 |........|.R..DTVU|
|000048f0| 00 01 00 12 4d 50 53 52 | 00 00 00 2a 68 5f ff ff |....MPSR|...*h_..|
|00004900| 00 00 00 00 00 00 00 00 | 08 d2 ff ff 00 00 00 78 |........|.......x|
|00004910| 00 00 00 00 03 ed 00 00 | 00 00 00 2c 00 82 1e 4c |........|...,...L|
|00004920| 13 43 72 65 61 74 65 64 | 20 62 79 20 43 4d 61 73 |.Created| by CMas|
|00004930| 74 65 72 aa 00 00 00 00 | 00 00 00 00 00 00 00 00 |ter.....|........|
|00004940| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004950| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+